超出最大上载文件大小将被忽略

时间:2011-10-26 23:39:35

标签: jquery asp.net-mvc file-upload error-handling maxrequestlength

我正在尝试使用描述on this blog

的技术将文档上传到我的服务器

一切顺利,我可以上传文件。唯一的障碍是当我尝试上传超过我的web.config中定义的上传限制的文件时....

<location path="Documents/Documents/Add">
   <system.web>
      <httpRuntime maxRequestLength="25600"/>
   </system.web>   
</location>

问题是我没有收到服务器的回复。实际上,在Visual Studio中进行调试时,操作甚至都没有命中!

小提琴手的进一步调查表明我得到了......

504: ReadResponse() failed: The server did not return a response for this request.  

....但是当fiddler正在运行时,我只能在Chrome中使用它。如果fiddler没有运行chrome,只看到“Failed”没有状态代码,并且没有命中$()。ajax表单调用的error()。

this SO post也有完全相同的问题。但是,我想知道如何在超出文件大小时向用户提供反馈,因为当前“loading.gif”正在旋转,因为没有引发错误响应。

1 个答案:

答案 0 :(得分:3)

检查这个关于客户端检查文件大小的问题,以便在尝试上传文件太大之前能够捕获它。 Find size of file behind download link with jQuery

修改

如果filesize大于web.config文件中的设置,服务器将抛出异常,因此如果要处理服务器端,可以执行一些操作。

1)您可以增加最大文件大小,然后您的上传代码可以验证较小的大小,如果它太大则返回失败。当然,如果他们尝试的东西比你的新尺寸更大,它仍然会失败。

2)捕获global.asax文件中的错误并对其执行某些操作。设置响应头,返回false或其他。检查Catching "Maximum request length exceeded"以开始使用此选项。

3)使用我之前提出的JQuery选项处理客户端或使用Flash检查大小。

基本上等待服务器告诉你文件太大通常为时已晚。该文件必须一直到那里才能告诉你oops太大了。这会对您的服务器造成更大的打击。如果可能的话,通常最好找到在客户端上检查它的方法。