我在项目中上传视频时遇到问题。 如果File大约有25mb,那么上传效果不错,但是如果我尝试上传更大的文件--80 mb,我收到"失败"。
Web.config文件:
<httpRuntime maxRequestLength="104857600" executionTimeout="3600" />
我在视图文件中的功能:
function createVideoUploader() {
videoTempName = '@Guid.NewGuid().ToString().Replace("-", "").Substring(0, 13)';
var uploader = new qq.FileUploader({
element: document.getElementById('video-uploader'),
allowedExtensions: ['3g2', '3gp', 'avi', 'f4v', 'flv', 'm4v', 'mov', 'mp4', 'mpeg', 'mpg', 'mts', 'ogv', 'webm', 'wmv'],
sizeLimit: 838860800, //304857600,
action: '@Url.Action("Upload", "Upload")',
params: { 'fileTempName': videoTempName },
multiple: false,
onSubmit: function (id, fileName) {
$('div.qq-upload-button').hide();
$(".qq-upload-drop-area").remove();
},
onCancel: function() {
createVideoUploader();
},
onComplete: function (id, fileName, responseJSON) {
if(responseJSON.success == false) {
uploaded = false;
$("#videoUploadedFail").show(); // show video error
var postData = { 'fileTempName': videoTempName };
$.ajax({
type: 'POST',
url: '@Url.Action("DeleteTemp", "Upload")',
data: $.param(postData,true),
async: false
});
} else if(responseJSON.success == true) {
uploaded = true;
$('div.qq-upload-button').hide();
var postData = { 'fileTempName': videoTempName };
$.post("@Url.Action("PreprocessVideo", "Upload")", $.param(postData,true),
function (data) {
appendSuccess("#flowVideo");
totalTime = secsToTime(data.seconds); // seconds to time
$("#duration").html(totalTime);
$(".timeText").html(totalTime);
$("#orderSlides").css("display", "inline-block");
});
}
}
});
if (!($.browser.msie))
$('span.qq-upload-span').append(' or drop file here');
}
答案 0 :(得分:1)
IIS 7+现在要求您还设置较新的requestFiltering/requestLimits/maxAllowedContentLength
属性,并且30000000
httpRuntime/maxRequestLength
的默认值为maxAllowedContentLength
(约为28.4MB)你所看到的。
这应该与maxRequestLength
属性一起设置,以确保IIS(通过<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="104857600" />
</requestFiltering>
</security>
</system.webServer>
以字节为单位)和ASP.NET(通过{{1}}以千字节为单位)达成一致。
您应该可以通过应用程序web.config的requestLimits元素更改此设置,以允许更合适的最大值:
{{1}}
要记住的一件事是,一旦内容长度超过限制,这就是服务器端执行请求过滤 - 所以没有什么可以阻止用户尝试上传150MB只有一旦100.1MB上传,它就会失败。