我有一个文件上传页面允许上传多个文件。
当我在一个相当好的连接上使用它时,它工作得很好:对于每个单独的文件,我的控制器操作被调用,Request.Files
确实包含一个文件。
但是,当我使用开发人员工具(GPRS速度)模拟一个坏连接时,当我的控制器操作被调用时,Request.Files
是空的。
我还尝试了一个中等连接(3G),我得到了两者的混合:两个文件成功上传,我确实有一个文件在Request.Files
中为每个人,另外两个失败与Request.Files
是空的。
这是正常的行为吗?我想知道的是我的代码中是否有错误,或者我是否在浪费时间试图修复无法避免的东西。
我看到的关于这个问题的所有问题都表明我应该为表单的enctype
属性指定multipart/form-data
,但这不是我的问题的解决方案,因为它在良好的连接下工作得很好。
编辑
@Gunnarhawk,这是我执行AJAX调用的方式:
return $.ajax({
url: '@Url.Action("GetUploadedFileList", "Process", new { claimId = @claimId })',
method: 'POST',
contentType: "application/json; charset=utf-8",
dataType: 'html',
cache: false,
data: dataJson, // Object as JSON text
processData: false,
traditional: true,
success: function (response) {
// Stuff...
},
error: function () {
// Stuff...
}
});
字符串
1条答案
按热度按时间xpcnnkqh1#
您可以尝试增加执行超时或最大请求长度(以允许更大的文件上传和页面运行更长时间)。
字符串
参见docs on maxRequestLength
最大请求大小(以KB为单位)。默认大小为4096 KB(4 MB)。
而docs on executionTimeout
一个TimeSpan值,指示请求允许的执行时间。
我相信执行时间是以秒为单位的,所以如果你设置为300,那就是5分钟。
这样做可能会让公共应用程序受到恶意用户的攻击,通过尝试上传非常大的文件,所以要注意。
您可以使用
<location href="path">
元素将更改的范围限定到应用程序中的特定页面。请在Microsoft Excel中查看有关位置的详细信息。