我已经实现了blueimps fileupload,它适用于任何大约30mb的文件。我已将maxRequestedLength设置为超过100mb,并且IIS 7设置为允许大于此的文件上载。
上传大于30mb的文件时,它只会触发失败选项,而不会触及后面的代码。
$('#fu-my-simple-upload').fileupload({
url: '/SubmissionPortal/UploadFile',
dataType: 'json',
maxFileSize: '@ViewBag.MaxFileSize' ,
add: function (e, data) {
jqXHRData = data
},
done: function (event, data) {
alert("done");
if (data.result.isUploaded) {
$("#tbx-file-path").val("No file chosen...");
$('input[type=submit]').click();
}
else {
alert(data.result.message);
}
},
fail: function (event, data) {
if (data.files[0].error) {
alert(data.files[0].error);
}
},
progress: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
$('#progress .progress-bar').css('width', progress + '%');
}
});
我错过或做错的任何想法?我现在已经搜索了几个小时,但我找不到任何可以解释为什么它会停止在这种任意切断下工作的东西。
在url参数之后尝试设置maxFileSize: 52428800 (greater than 30 mb, say 50 mb)
...
原来我错过了IIS 7的设置。我有正确的IIS 6设置所以添加以下后它工作:
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="104857600" />
</requestFiltering>
</security>
观察您的Apache / PHP(或您正在使用的任何Web服务器)上传限制。虽然这个库有限制,但是Web服务器的限制可能会让你无意中失败。
例如,如果使用Apache和PHP,则需要编辑/etc/php5/apache2/php.ini文件(PHP如何在apache内部自身)并检查变量“memory_limit”和“post_max_size”。确保将“post_max_size”设置为高于此lib中的块大小限制,并将“memory_limit”设置为高于该值。如果不这样做,较大的上传将无声地失败(请参阅apache日志以查看它是否发生)。