使用FileUpload控件时如何用js在客户端判断上传文件的大小?

解决方案 »

  1.   

    如果你是图片文件的话,可以直接使用JS判断,
      如果是别的文件类型的话,好像JS判断有难度... 我也正在做这个,我就只将图片文件用JS判断了。别的文件还是到后台去判断。
      

  2.   


    <HTML>
    <HEAD> 
    <>
    getFileSize (fileName) {
     if (layers) {
      if (navigator.javaEnabled()) {
       var file = new java.io.File(fileName);
        if (location.protocol.toLowerCase() != '''')
         netscape.security.PrivilegeManager.enablePrivilege(''UniversalFileRead'' );
       return file.length(); 
      }else 
       return -1; 
     }else if (all) {
      old = ;
      = (err) {
       if (err.indexOf(''utomation'') != -1) {
        alert(''file access not possible'');
        return true;
       }else 
        return false; 
      };
      var fso = new ActiveXObject(''ing.FileSystemObject'');
      var file = fso.GetFile(fileName);
      = old;
      return file.Size; 
     }
    }</></HEAD><BODY>
     <FORM NAME="formName"><INPUT TYPE="file" NAME="fileName"><BR>
      <INPUT TYPE="button" VALUE="check file size" ="alert(getFileSize(this.form.fileName.value)+''字节'')">
     </FORM>
    </BODY>
    </HTML>
      

  3.   

    这就是一个判断而已,放在你要调用的JS方法里面,执行的代码在下面的控件里面执行的。      if(document.all.imgx.fileSize>1024*1024)
                {
                   
                    alert('图片文件超过指定大小(1M),请重新上传附件');
                    window.event.returnValue=false;
                    return false; 
                 }就是在选择附件之后将这个文件传给img 在到JS方法里面判断<asp:FileUpload ID="FileUpload2" runat="server" Width="353px" onchange="document.all.imgx.src=this.value"/><img src="" id="imgx" style="display:none">
      

  4.   

    FSO
    <script> 
      function  getFileSize  (fileName)  {  
       
    if  (document.all)  {  
    window.oldOnError  =  window.onerror;          
    window.onerror  =  function  (err)  {  
    if  (err.indexOf('utomation')  !=  -1)  {  
    alert('没有访问文件的权限');                  
    return  true;              
    }            
    else    
    return  false;          
    };  
           var  fso  =  new  ActiveXObject('Scripting.FileSystemObject');  
           var  file  =  fso.GetFile(fileName);          
    window.onerror  =  window.oldOnError;  
           return  file.Size;    }}  
      </script>   
       <INPUT  TYPE="file"  NAME="fileName"> 
    <INPUT  TYPE="button"  VALUE="查看文件字节大小"  ONCLICK="alert(getFileSize(document.getElementById('fileName').value))">
      

  5.   


    前台实现不了.用JS在IE6下有效,FF或IE7以上就没效了.
    放弃吧.JS判断是没用的.
    就算能实现,有恶意的人在浏览器端也能轻松修改JS.有一些AJAX上传组件或许可以.不过也存在被恶意突破的情况.还有一些通过flash Actionscript+上传组件的办法,可以在前台判断文件大小.当然也只是防君子不防小人的.