在上传之前确保上传文件的文件大小低于maxRequestLength?

我有一个带有FileUpload控件的表单,用户可以上传图像。 在上传发生之前,我是否可以确保上载映像的文件大小低于配置的maxRequestLength,这样可以防止在文件大小过大时抛出exception?

我最初尝试查看控件的PostedFile的ContentLength无效,因为文件已经提交。

我没兴趣增加maxRequestLength。

从可用性的角度来看,一条简单的信息告诉人们不会在很大程度上阻止问题。

然后你可以尝试这个(YMMV):它只是浏览器的一个提示,并且依赖于支持语法的浏览器。 隐藏字段显然需要紧跟在您的文件输入之前(或者在asp.net中,您的文件上载控件,检查浏览器中的标记以确保)。

  

其中值为Kb – 因此上述限制为半兆字节。 有些浏览器不会支持这一点,所以你仍然需要在服务器端检查它,或者接受一些奇数/古代/不同浏览器的人仍然可能尝试提交超大文件。

在这个网页上找到了这个

我只是觉得这不可能在HTTP的范围内,你将不得不使用闪存上传器,我相信。 服务器知道文件大小的唯一方法是服务器获取文件

查看http://www.swfupload.org和厨房水槽演示, url为http://demo.swfupload.org/v220/featuresdemo/index.php

听起来你有一个要求,“防止exception”,以及你认为应该实现这个目标的方法,“检查客户端的文件大小。”

您只能使用客户端技术(如Flash或Silverlight)100%validation客户端的文件大小。 这可以防止exception,但会迫使您将自己绑定到特定的客户端技术。

您可以阻止该exception,但它会在文件上传后发生(出于您之前说明的原因)。 查看本文以获取代码示例: http : //aspnetresources.com/articles/dark_side_of_file_uploads

类似的function在NeatUpload(开源,LGPL)等文件上传组件中提供了开箱即用的function: http : //www.brettle.com/NeatUpload-1.3/dotnet/docs/Manual.html – >查看第4.5节。

即使在上传文件完全传输之前,也可以确定上载文件的大小。 即使使用Internet Explorer也是如此。 通过使用HTTP的内容长度标头!
在java世界中:
首先,如果您处理在第一个servlet /filter/控制器中的任何先前线程质量之前到达服务器的请求,您将获得内容长度标头中的总文件大小(请求。 getContentLength())。

第二步 – 看看ajax实现,certificate它是可能的: http : //www.ajaxfilebrowser.com/