如今在许多站点都提供上传图片功能,一般查看图片和验证图片有效性的过程往往在服务器端处理,然后返回给用户。
相比较如今的WEB技术发展进度,这显然不能满足需要(笔者就有多个客户要求上传图片之前“实时预览”)。
事实上 借助DHTML技术这不难做到:
<script language="JavaScript" type="text/javascript"> var flag=false;function DrawImage(ImgD){ var image=new Image(); image.src=ImgD.src; if(image.width&gt;0 &amp;&amp; image.height&gt;0){ flag=true; if(image.width/image.height&gt;= 120/80){ if(image.width&gt;120){ ImgD.width=120; ImgD.height=(image.height*120)/image.width; }else{ ImgD.width=image.width; ImgD.height=image.height; } ImgD.alt=image.width+"×"+image.height; } else{ if(image.height&gt;80){ ImgD.height=80; ImgD.width=(image.width*80)/image.height; }else{ ImgD.width=image.width; ImgD.height=image.height; } ImgD.alt=image.width+"×"+image.height; } } /*else{ ImgD.src=""; ImgD.alt="" }*/ } function FileChange(Value){flag=false;document.all.uploadimage.width=10;document.all.uploadimage.height=10;document.all.uploadimage.alt="";document.all.uploadimage.src=Value;}function BeforeUpLoad(){if(flag) alert("OK");else alert("FAIL");} </script>
将以下代码保存为HTM文件,即可查看运行效果
<script language=JavaScript>
var flag=false;
function DrawImage(ImgD){
var image=new Image();
image.src=ImgD.src;
if(image.width>0 && image.height>0){
flag=true;
if(image.width/image.height>= 120/80){
if(image.width>120){
ImgD.width=120;
ImgD.height=(image.height*120)/image.width;
}else{
ImgD.width=image.width;
ImgD.height=image.height;
}
ImgD.alt=image.width+"×"+image.height;
}
else{
if(image.height>80){
ImgD.height=80;
ImgD.width=(image.width*80)/image.height;
}else{
ImgD.width=image.width;
ImgD.height=image.height;
}
ImgD.alt=image.width+"×"+image.height;
}
}
/*else{
ImgD.src="";
ImgD.alt=""
}*/
}
function FileChange(Value){
flag=false;
document.all.uploadimage.width=10;
document.all.uploadimage.height=10;
document.all.uploadimage.alt="";
document.all.uploadimage.src=Value;
}
function BeforeUpLoad(){
if(flag) alert("OK");else alert("FAIL");
}
</script>
<INPUT style="WIDTH: 143px; HEIGHT: 18px" type=file size=8 name=pic οnchange="javascript:FileChange(this.value);">
<IMG id=uploadimage height=10 width=10 src="" οnlοad="javascript:DrawImage(this);" ><BR>
<Button οnclick="javascript:BeforeUpLoad();">提交</Button>