BlueImp FileUpload 在一定大小后不上传文件
BlueImp FileUpload not uploading files after certain size
我已经实现了 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 服务器的限制可能会以静默失败来愚弄您。
例如,如果使用 Apache & PHP,您需要编辑 /etc/php5/apache2/php.ini 文件(PHP 如何在 apache 中分层)并检查变量 "memory_limit" 和 "post_max_size"。确保 "post_max_size" 设置高于您在此库中的块限制,并且 "memory_limit" 甚至高于该限制。如果不这样做,较大的上传将无提示地失败(在 apache 日志中查看它发生的情况)。
我已经实现了 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 服务器的限制可能会以静默失败来愚弄您。
例如,如果使用 Apache & PHP,您需要编辑 /etc/php5/apache2/php.ini 文件(PHP 如何在 apache 中分层)并检查变量 "memory_limit" 和 "post_max_size"。确保 "post_max_size" 设置高于您在此库中的块限制,并且 "memory_limit" 甚至高于该限制。如果不这样做,较大的上传将无提示地失败(在 apache 日志中查看它发生的情况)。