现在的位置: 首页 > 综合 > 正文

上传文件的客户端检测(仅限于图片)

2011年09月03日 ⁄ 综合 ⁄ 共 1167字 ⁄ 字号 评论关闭

较大的文件的检测是比较棘手的,大文件在服务器端验证的话基本是不可行的,因为在验证是在文件上传结束才可以进行的,事实上,不作特殊处理大文件不可能完成上传的,IIS将会直接抛出异常,此异常你的程序是获取不到的。详见http://blog.joycode.com/saucer/archive/2004/03/16/16225.aspx

对于图片的文件大小限制可以如下处理:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
      <title>Untitled</title>
      <script>
var img=null;
var maxfilesize = 1048576;
var filePath;
function checkimage()
{
      filePath = document.getElementById("FILE1").value;
      if(/^.+\.(gif|jpg|png)$/i.test(filePath)){
      img = new Image();
      img.style.display='none';
      img.attachEvent("onerror",ErrImgType);
      img.attachEvent("onreadystatechange",ErrImgBig);
      document.body.insertAdjacentElement("beforeend",img);
      img.src=filePath;
      }else{ErrImgType()}
}
function  ErrImgType(){
      upload.reset();
      alert("上传图片文件类型只能是jpg,png或gif!");
      return false;
}
function  ErrImgBig(){
      if  (img.fileSize>maxfilesize){
            upload.reset();
            alert("文件大小不能超过1M字节!");
            return false;
      }
}
      </script>
</head>

<body>
<FORM METHOD="post" id="upload" NAME="upload" ENCTYPE="multipart/form-data">
<input type="file" id="FILE1" name="FILE1" class="bg4" onChange="setTimeout('checkimage()',500)">
</form>
</body>
</html>

抱歉!评论已关闭.