我们平常用file文件控件上传文件,要预览有时会刷新页面,结果file控件被清空,好多人问能能让他不清空或重新赋值,因为处于安全性的考虑,这是不可能的。那怎么进行无刷新预览呢?这里我把我所使用的方法写一下。 选择页面: 复制代码 代码如下: <BR>function checkData() <BR>{ <BR>var fileName=document.getElementById("FileUp").value; <BR>if(fileName=="") <BR>return; <BR>//检查文件类型 <BR>var exName=fileName.substr(fileName.lastIndexOf(".")+1).toUpperCase() <BR>if(exName=="JPG"||exName=="BMP"||exName=="GIF") <BR>{ <BR>//document.getElementById("myimg").src=fileName; <BR>document.getElementById("previewImage").innerHTML='<img src=\''+fileName+'\' style="max-width:90%"File文件控件,选中文件(图片,flash,视频)即立即预览显示_表单特效" >'; <BR>} <BR>else <BR>if(exName=="SWF") <BR>{ <BR>document.getElementById("previewImage").innerHTML='<embed src=\''+fileName+'\' width=\'100\' height=\'100\' quality=\'high\' bgcolor=\'#f5f5f5\' >'; <BR>} <BR>else <BR>if(exName=="WMV"||exName=="MPEG"||exName=="ASF"||exName=="AVI") <BR>{ <BR>var strcode='<embed src=\''+fileName+'\' border=\'0\' width=\'100\' height=\'100\' quality=\'high\' '; <BR>strcode+=' autoStart=\'1\' playCount=\'0\' enableContextMenu=\'0\' type=\'application/x-mplayer2\'>'; <BR>document.getElementById("previewImage").innerHTML=strcode; <BR>} <BR>else <BR>{ <BR>alert("请选择正确的图片文件"); <BR>document.getElementById("FileUp").value=""; <BR>} <BR>} <BR>function openwin() <BR>{ <BR>window.open("addPreview.aspx","","height=300,width=345,top=100,left=100"); <BR>} <BR> HTML代码: 复制代码 代码如下: runat="server" onchange="checkData()"> 注:这里可以是图片(jpg或gif格式),flash动画(swf)及视频文件(wmv,mpeg,asf,avi)。大小限定在1M以内。 当前页预览 弹出预览页面: 复制代码 代码如下: <BR>function getstr() <BR>{ <BR>var strcode=""; <BR>var width=100; <BR>var high=100; <BR>if(self.opener.document.getElementById("FileUp")!=null) <BR>{ <BR>//strcode=self.opener.document.getElementById("previewImage").innerHTML; <BR>width=self.opener.document.getElementById("lblWidth").innerText; <BR>high=self.opener.document.getElementById("lblHigh").innerText; <BR>var fileName=self.opener.document.getElementById("FileUp").value; <BR>var exName=fileName.substr(fileName.lastIndexOf(".")+1).toUpperCase() <BR>if(exName=="JPG"||exName=="BMP"||exName=="GIF") <BR>{ <BR>//document.getElementById("myimg").src=fileName; <BR>strcode='<img src=\''+fileName+'\' style="max-width:90%" height='+high+' alt="File文件控件,选中文件(图片,flash,视频)即立即预览显示_表单特效" >'; <BR>} <BR>else <BR>if(exName=="SWF") <BR>{ <BR>strcode='<embed src=\''+fileName+'\' width=\''+width+'\' height=\''+high+'\' quality=\'high\' >'; <BR>} <BR>else <BR>if(exName=="WMV"||exName=="MPEG"||exName=="ASF"||exName=="AVI") <BR>{ <BR>strcode='<embed src=\''+fileName+'\' border=\'0\' width=\''+width+'\' height=\''+high+'\' quality=\'high\' '; <BR>strcode+=' autoStart=\'1\' playCount=\'0\' enableContextMenu=\'0\' type=\'application/x-mplayer2\'>'; <BR>} <BR>} <BR>if(self.opener.document.getElementById("txtADCode")!=null) <BR>{ <BR>strcode=self.opener.document.getElementById("txtADCode").innerHTML; <BR>} <BR>if(strcode!="") <BR>{ <BR>//window.alert(fileName); <BR>document.getElementById("showimg").innerHTML=strcode; <BR>} <BR>} <BR> 显示: 复制代码 代码如下: