我正在尝试使用描述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”正在旋转,因为没有引发错误响应。
答案 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太大了。这会对您的服务器造成更大的打击。如果可能的话,通常最好找到在客户端上检查它的方法。