要求:通过onchange="checkExd(this.value)" 去实现?
1、先判断文件是否为图片格式的文件(已实现).
2、然后再判断文件大小是否小于2M,2M以内同意上传,否则不能上传。以下js可以判断文件是否为图片格式    
<script language="javascript" type="text/javascript">
        function checkExd(fileName)
        {                     
          if(fileName.lastIndexOf(".")+1>=fileName.length)
          {
            alert("文件类型不匹配");
            return false;
           }
          var exd=fileName.substring(fileName.lastIndexOf(".")+1).toUpperCase();
          if(exd=="GIF"||exd=="BMP"||exd=="JPG"||exd=="PNG")           
              return true;                    else 
           {
             alert("文件类型不匹配,只限于图片格式:GIF,BMP,JPG,PNG");
             form1.reset();
             return false;
           }
        }           
        
    </script> <asp:FileUpload ID="FileUpload1" runat="server" Width="160px" onchange="checkExd(this.value)" />

解决方案 »

  1.   

    我记得ie6以外的浏览器都不允许暴露客户端文件信息的
    你想做得好一点的话还是用flash吧
      

  2.   

    function getFileSize(o) {
          x = window.XMLHttpRequest ? new window.XMLHttpRequest : new ActiveXObject("MSxml2.XMLHTTP");
          x.open("HEAD", o.src, false);
          x.send();
          alert("大小:" + x.getResponseHeader("Content-Length"));
        }
      

  3.   


    判断文件后缀用JS还是可以。。你的那个判断再加上一个  exd == "JPEG"火狐和IE对这个格式出来的后缀有一点不同如果用来判断文件大小还是后台好。。前台也是能判断的。。
    JS 判断上传文件的大小
      

  4.   

    建议后台实现,JS实现不利于网站安全建设,屏蔽JS上传,很难限制。