3

我正在尝试使用此博客上描述的技术将文档上传到我的服务器

一切顺利,我能够上传文件就好了。唯一的障碍是当我尝试上传超过我的 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.  

....但我只在提琴手运行时在 Chrome 中得到这个。如果 fiddler 没有运行 chrome,只会看到没有状态代码的“失败”,并且 $().ajax 表单调用的 error() 不会被命中。

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

4

1 回答 1

3

检查这个关于客户端检查文件大小的问题,以便在尝试上传太大的文件之前能够捕获它。 使用 jQuery 查找下载链接后面的文件大小

编辑

如果文件大小大于您在 web.config 文件中的设置,服务器将抛出异常,因此如果您想在服务器端处理它,您可以做一些事情。

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

2) 在 global.asax 文件中捕获错误并对其进行处理。设置响应头,返回 false 或其他。选中捕获“超出最大请求长度”以开始使用此选项。

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

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

于 2011-10-26T23:59:31.497 回答