较大的文件的检测是比较棘手的,大文件在服务器端验证的话基本是不可行的,因为在验证是在文件上传结束才可以进行的,事实上,不作特殊处理大文件不可能完成上传的,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>