Попытка получить размер файла, когда пользователь загружает файл. Когда пользователь нажимает кнопку обзора, чтобы загрузить файл, но вместо этого нажимает кнопку отмены. Тип файла выдает ошибку undefined.

Я пытался использовать typeof, чтобы проверить состояние файла не определено, но это не работает. Нужна помощь, чтобы поймать ошибку.

$('#fileupload-image').change(function() {
    $('#select_file').hide();
    $('#upload_image_button').slideDown('fast');
    var filename = $(this).val();

    if(typeof this.files[0].size == 'undefined')
    {
        this.files[0].size = '';
    }
    else 
    {
        var filesize = this.files[0].size;
    }
0
Errol Wallace 17 Дек 2015 в 00:15

3 ответа

Лучший ответ

Другая возможность:

var filesize = (this.files.length && this.files[0].size) || '';
3
andi 16 Дек 2015 в 21:26

Используйте проверку this.files.length> 0 вместо проверки, не определена ли она. Кроме того, если вы проверяете, не определено ли оно, вы также не захотите использовать одинарные кавычки.

0
FadedAce 16 Дек 2015 в 21:17

Прежде всего, я не думаю, что вы на самом деле хотите установить this.files[0].size = '';.

Вот одна из возможностей, используя try / catch, чтобы забыть все о проверке типов:

var filesize = '';
try {
    filesize = this.files[0].size;
}
catch {}
2
andi 16 Дек 2015 в 21:25