Javascript 在表单提交时,检查准备上载的文件的大小?

Javascript 在表单提交时,检查准备上载的文件的大小?,javascript,jquery,file-upload,filereader,Javascript,Jquery,File Upload,Filereader,我有一个表单,可以有多个文件输入(每个输入一个文件,而不是多选) 提交表单时,如何获取所有input[type=“file”]内容的数组,并在上传之前使用FileReader查看文件大小,如果任何文件过大,如何防止 $('#MyForm').submit(function() { }); 从我能找到的有限的FileReader文档中,我根本无法理解这一点。或者不让它工作,无论如何…您正在寻找大小属性: var anyOversize = Array.prototype.some.ca

我有一个表单,可以有多个文件输入(每个输入一个文件,而不是多选)

提交表单时,如何获取所有
input[type=“file”]
内容的数组,并在上传之前使用FileReader查看文件大小,如果任何文件过大,如何防止

$('#MyForm').submit(function() {

});

从我能找到的有限的FileReader文档中,我根本无法理解这一点。或者不让它工作,无论如何…

您正在寻找
大小
属性:

var anyOversize =
    Array.prototype.some.call(document.querySelectorAll('input[type="file"]'), function(fileInput) {
        return Array.prototype.some.call(fileInput.files, function(file) {
            return file.size > limit;
        });
    });
var超大号=
Array.prototype.some.call(document.queryselectoral('input[type=“file”]”),函数(fileInput){
返回Array.prototype.some.call(fileInput.files,function(file){
返回file.size>limit;
});
});

(顺便说一下,这是以字节为单位的大小。)

问题在于我试图用jQuery从文件输入中选择文件的方式。以下是一些示例解决方案:

如果您有一个文件输入,并且用户只能选择一个文件:

// Get the file
var file = $('input[type="file"]').get(0).files[0];

// File size, in bytes
var size = file.size;
// Get an array of the files
var files = $('input[type="file"]').get(0).files;

// Loop through files
for (var i=0; file = files[i]; i++) {

    // File size, in bytes
    var size = file.size;
}
// Loop through each file input
$('input[type="file"]').each(function(i) {

    // Get an array of the files for this input
    var files = $(this).get(0).files;

    // Loop through files
    for (var j=0; file = files[j]; j++) {

        // File size, in bytes
        var size = file.size;
    }
});
如果您有一个文件输入,请选择多个文件:

// Get the file
var file = $('input[type="file"]').get(0).files[0];

// File size, in bytes
var size = file.size;
// Get an array of the files
var files = $('input[type="file"]').get(0).files;

// Loop through files
for (var i=0; file = files[i]; i++) {

    // File size, in bytes
    var size = file.size;
}
// Loop through each file input
$('input[type="file"]').each(function(i) {

    // Get an array of the files for this input
    var files = $(this).get(0).files;

    // Loop through files
    for (var j=0; file = files[j]; j++) {

        // File size, in bytes
        var size = file.size;
    }
});
如果您有多个文件输入,请选择多个文件:

// Get the file
var file = $('input[type="file"]').get(0).files[0];

// File size, in bytes
var size = file.size;
// Get an array of the files
var files = $('input[type="file"]').get(0).files;

// Loop through files
for (var i=0; file = files[i]; i++) {

    // File size, in bytes
    var size = file.size;
}
// Loop through each file input
$('input[type="file"]').each(function(i) {

    // Get an array of the files for this input
    var files = $(this).get(0).files;

    // Loop through files
    for (var j=0; file = files[j]; j++) {

        // File size, in bytes
        var size = file.size;
    }
});

拥有文件对象后,以下是您可以访问的属性(大小除外):