asp.net默认只能上传小于4M的文件,我现在用jquery的文件上传组件上传文件到服务器,如何在客户端就能判断文件大小,这个问题我已经纠结了一阵子了,还是没搞定。

解决方案 »

  1.   

    可以用基于flash的上传组件:jqUploaderuploadify
    它们都可以在上传前检查文件大小如果不是基于flash的,比如 jQuery Multiple File Upload Plugin 和jQuery Ajax file upload,只能在服务端做检查其它很多基于flash的组件都有在客户端检查的功能,比如FancyUpload, SwfUpload等等
    http://www.open-open.com/ajax/Upload.htm
      

  2.   

    楼上说的对。我用过uploadify,很好用,可以在浏览器端检查文件大小
      

  3.   

    客户端javascript应该检查不了。下面的文章使用ActiveX检查,大部分浏览器会要求权限。Using javascript check uploaded file size, which is uploaded by a file upload control
      

  4.   

    貌似这些都需要flash支持的,客户那里我不可能要求他们装flash插件什么的。
      

  5.   

    修改<httpRuntime maxRequestLength="51200" executionTimeout="3600" appRequestQueueLimit="10000"/>
    JQuery上传插件Uploadify
      

  6.   

    客户那里什么都不让动,IIS生产环境我们没权限。
      

  7.   


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <head>
    <title></title>
    <script type="text/javascript">
    function getFileSize(filePath) 

       alert(filePath);
       var fso = new ActiveXObject("Scripting.FileSystemObject"); 
       alert(fso.GetFile(filePath).size); 
    }
    </script>
    </head>
    <body>
         <input type="file" name="file2" size="30" onchange="getFileSize(this.value);">
    </body>
    </html>
      

  8.   

    如果上传的文件确实需要大于4M的话,可以在web.config中<system.web>节点内 配置一下即可
    <!-- 配置上传压缩文件的大小(资料上传) -->
    <httpRuntime  maxRequestLength="51200" executionTimeout="600" /><!--实际大小可以根据自己的需要来随意设置 -->
      

  9.   

      不可能在客户端判断,毕竟 客户端检测不到上传文件的大小。  可用ajax写  在ajax页面 检查上传文件的大小,如果太大 返回一个错误提示  直接alter打出 即可!
      

  10.   

    HttpPostedFile hpf = this.FileUpload1.PostedFile;
    string FileSize = Convert.ToString(Convert.ToInt32(hpf.ContentLength.ToString()) / 1024);// +"KB",获取上传的文件的大小
      

  11.   

    可能通过程序修改web.confg的配置
      

  12.   

    直接搜索关键字:你使用的jquery组件的名字检查文件大小
      

  13.   

    借助flash可以获得文件大小,参考楼上提出的SWFUpload