大致如下:
<script language="JavaScript">
var AllowImgWidth=150;
var AllowImgHeight=100;
function load(Obj){
var tempImg=new Image();
//check file type
tempImg.onerror=function(){alert('fxxku');};
//file type checked
//check img size
tempImg.onreadystatechange=function(){if(AllowImgWidth!=0&&AllowImgWidth<this.width||AllowImgHeight!=0&&AllowImgHeight<this.height){alert('sobig');}
else{document.getElementById('preview').innerHTML="<img src="+tempImg.src+">";}};
//img size checked
tempImg.src=Obj.value;
}
</script>
<form>
<input type="file" name="UpFile" size="128" contentEditable="false" onpropertychange="javascript:load(this);">
<div id="preview"></div>
</form>
问题:当选择了一个合法的文件之后,再次点击“浏览”选择一个大尺寸的图片文件,Obj.value会改变。
请高手不吝指教,20分作谢。
<script language="JavaScript">
var AllowImgWidth=150;
var AllowImgHeight=100;
function load(Obj){
var tempImg=new Image();
//check file type
tempImg.onerror=function(){alert('fxxku');};
//file type checked
//check img size
tempImg.onreadystatechange=function(){if(AllowImgWidth!=0&&AllowImgWidth<this.width||AllowImgHeight!=0&&AllowImgHeight<this.height){alert('sobig');}
else{document.getElementById('preview').innerHTML="<img src="+tempImg.src+">";}};
//img size checked
tempImg.src=Obj.value;
}
</script>
<form>
<input type="file" name="UpFile" size="128" contentEditable="false" onpropertychange="javascript:load(this);">
<div id="preview"></div>
</form>
问题:当选择了一个合法的文件之后,再次点击“浏览”选择一个大尺寸的图片文件,Obj.value会改变。
请高手不吝指教,20分作谢。
然后,再次点击“浏览”,选择另外一张超大的图片B,触发了alert( 'sobig ');之后,图片B的路径会覆盖掉图片A的路径,这个是一个未解决的BUG,请高手指教。
如果是这样的话,可以通过以下方法:
加一个标识性的变量 flag,默认值为0,如果图片的尺寸不符合条件,你在alert之后,把这个flat=1,然后在设置innerHTML之前先判断一下
flag的值,如果是0的话则设置innerHTML,如果是1的话就不要设置就好了。
不知道这样能不能满足你的需求,如果我理解的不对,你指出来