我实现了这个插件完全开箱即用,文件限制为2mb,强制服务器端有错误响应。它很棒。
然后我被要求将文件大小限制为5mb。
我尝试了所有可以尝试的东西。我只是无法让插件对大于4.2mb的文件做任何事情。
没有错误,它只是对大于4.2mb的文件没有任何作用。
目前的代码:
$('#fileupload').fileupload({
type: "POST",
add: function (e, data) {
if (files < 5) {
var errs = [];
var acceptFileTypes = /(\.|\/)(gif|jpe?g|png)$/i;
var maxFileSize = 5242880;
// Validate file
$.each(data.files, function (index, file) {
if (file.type.length && !acceptFileTypes.test(file.type)) {
errs.push('Selected file "' + file.name + '" is not alloawed. Invalid file type.');
}
if (this['size'] > maxFileSize) {
errs.push('Selected file "' + file.name + '" is too big, ' + parseInt(file.size / 1024 / 1024) + 'M.. File should be smaller than ' + parseInt(maxFileSize / 1024 / 1024) + 'M.');
}
});
// Output errors or submit data
if (errs.length > 0) {
alert('An error occured. ' + errs.join(" "));
} else {
data.context = $('<p/>').text('Uploading...').appendTo($('.currUploadDiv ul'));
data.submit();
removeFileUploadLabel();
files++;
if (files > 0) {
$('.fileName').html(files + ' of 5 uploads selected.')
} else {
$('.fileName').html('Select a file.');
}
}
//data.submit();
// return;
} else {
$('.fileName').html('Maximum number of files selected.');
};
},
success: function (e, data) {
//ToDo- check response for too many files uploaded.
},
done: function (e, data) {
data.context.text(data["_response"]["result"]["message"]);
},
error: function (e, data) {
console.log(e);
}
});
我已按正确的顺序包含必要的.js文件(如前一个关于MaxFileSize的答案所示......)
我错过了什么?
答案 0 :(得分:0)
这是故意设计我害怕,以下内容来自插件FAQ: -
最大文件大小限制是多少?
可以使用jQuery File Upload插件上传最大 4 GB 的文件。 通过使用Chunked文件上传(块大小小于4GB),潜在的文件大小是无限的。 4 GB的限制是由于某些浏览器的限制,可能会在将来对这些浏览器的更新中修复。
https://github.com/blueimp/jQuery-File-Upload/wiki/Frequently-Asked-Questions
所以你需要的是以块的形式上传你的文件。您可以使用maxChunkSize选项设置块大小,如下所示: -
$('#fileupload').fileupload({
maxChunkSize: 10000000 // 10 MB
});
请注意,这不适用于所有浏览器(旧版本的IE I&#39;正在看着你!)
请参阅以下链接以获取相关帮助。
https://github.com/blueimp/jQuery-File-Upload/wiki/Chunked-file-uploads