TypeError 无法设置 属性 'size of' undefined

TypeError cannot set property 'size of' 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;
    }

使用 this.files.length > 0 检查而不是检查它是否未定义。此外,如果您要检查它是否未定义,您也不想使用单引号。

首先,我不认为你真的想要设置 this.files[0].size = '';

这里有一种可能性,使用 try/catch 来忘记类型检查:

var filesize = '';
try {
    filesize = this.files[0].size;
}
catch {}

另一种可能性:

var filesize = (this.files.length && this.files[0].size) || '';