如何查看用户上传图片的尺寸?客户端首先进行服务器端双重检查将是最佳解决方案。
答案 0 :(得分:3)
您所描述的是在HTML 2.0规范中获取有关HttpFileUpload的更多信息的最终战斗,因为您正在引用表单POST的HTML规范。不幸的是,HttpFileUpload不允许你得到这个 - 甚至在Javascript中都没有。这是一个非常普遍的问题。
两种解决方案:
正常的解决方案是更改web.config并修改http运行时(允许上传多长时间,如大文件需要30分钟)和http filesize来增加限制(默认为4 MB) )。这适用于Ruby / php,ASP.NET和ASP.NET MVC - 它适用于所有语言,因为HTML 2.0规范限制了您可以在表单POST上获得的HttpFileUpload数据。这将允许用户上传整个文件;然后,您将在服务器代码中处理您身边的限制。不是最好的解决方案;但是,除非你使用第三部分,否则它是唯一的解决方案。
使用第三方“文件监视器”插件。
我见过的最简单的一个是Telerik的RadControls。这些控件为我们安装了HttpModule,HttpHandler和特殊的javascript。有几个第三方确实有,但基本上这是它的工作原理:
以下是Telerik进度条上传的演示:
http://demos.telerik.com/aspnet-ajax/upload/examples/customprogress/defaultcs.aspx
就个人而言,我不喜欢不知道他们如何锁定这些上传的线程 - 因为我在高使用率下使用这些第三方工具时存在可扩展性问题。但是,对于Joe Bloe的博客来说,它们是很棒的工具。
这些第三方工具的问题在于它们只能在ASP.NET WebForms(标准ASP.NET)下工作。 ASP.NET MVC删除了整个ASP.NET WebForms概念 - 因此,渲染这些控件毫无用处。
嗯,也许这是一个有人写的新项目。 :)答案 1 :(得分:1)
在没有允许用户访问文件系统的applet或ActiveX控件的情况下在客户端上查找大小是不可能的。出于安全原因,浏览器限制对文件系统的访问。在服务器端,上传的文件应具有与之关联的内容长度,您可以检查。