如何检查文件输入字段数组是否已上传文件?

how to check if array of file input fields have files uploaded?

我有一个文件数组,即使文件输入字段为空,我也希望能够提交表单,但如果它们不为空,则检查其是否大于 5Mb。我可以检查文件是否大于 5Mb,如果大于 5Mb,它会阻止表单提交。但如果输入文件字段为空,表单将不允许我提交。请帮忙

  if (window.File && window.FileReader && window.FileList && window.Blob){
        //get the file size and file type from file input field
        var fsize = $('.upload_files')[0].files[0].size;

        if(fsize>5242880) //do something if file size more than 1 mb (1048576)
        {
            error_alert("file size is too big! please choose a smaller file");return false;
        }

        }

这是可以帮助满足您需求的功能。此函数可以处理 n 个文件对象,您可以将其设置为回调,也可以在任何事件上调用。请通过它。

function checkFileSize() {
    $total_file_size = $file_size = 0 ;
    $file_selected = false ;
    $('input:file').each(function() {
        $file_size = 0 ;
        $obj = this.files[0] ;

        if (typeof($obj) == 'undefined'){
            $file_size = 0 ;
        }
        else {
            $file_selected = true ;
            $file_size = $obj.size ;
        }
        $total_file_size += $file_size ;
    }) ;

    if($file_selected) {
        if($total_file_size <= 5242880) {
            return true ;
        }
        alert('File size is greater than 5MB') ;
        return false ;
    }
    else {
        return false ;  
    }
}

您可以根据需要进行调整。我希望它对你有用。 谢谢,祝你玩得愉快。