欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

File文件控件,选中文件(图片,flash,视频)即立即预览显示

程序员文章站 2022-07-11 18:22:24
我们平常用file文件控件上传文件,要预览有时会刷新页面,结果file控件被清空,好多人问能能让他不清空或重新赋值,因为处于安全性的考虑,这是不可能的。那怎么进行无刷新预览...
我们平常用file文件控件上传文件,要预览有时会刷新页面,结果file控件被清空,好多人问能能让他不清空或重新赋值,因为处于安全性的考虑,这是不可能的。那怎么进行无刷新预览呢?这里我把我所使用的方法写一下。
选择页面: 
复制代码 代码如下:

<script language="javascript">
function checkdata()
{
var filename=document.getelementbyid("fileup").value;
if(filename=="")
return;
//检查文件类型
var exname=filename.substr(filename.lastindexof(".")+1).touppercase()
if(exname=="jpg"||exname=="bmp"||exname=="gif")
{
//document.getelementbyid("myimg").src=filename;
document.getelementbyid("previewimage").innerhtml='<img src=\''+filename+'\' width=100 height=100 >';
}
else
if(exname=="swf")
{
document.getelementbyid("previewimage").innerhtml='<embed src=\''+filename+'\' width=\'100\' height=\'100\' quality=\'high\' bgcolor=\'#f5f5f5\' ></embed>';
}
else
if(exname=="wmv"||exname=="mpeg"||exname=="asf"||exname=="avi")
{
var strcode='<embed src=\''+filename+'\' border=\'0\' width=\'100\' height=\'100\' quality=\'high\' ';
strcode+=' autostart=\'1\' playcount=\'0\' enablecontextmenu=\'0\' type=\'application/x-mplayer2\'></embed>';
document.getelementbyid("previewimage").innerhtml=strcode;
}
else
{
alert("请选择正确的图片文件");
document.getelementbyid("fileup").value="";
}
}
function openwin()
{
window.open("addpreview.aspx","","height=300,width=345,top=100,left=100");
}
</script>

html代码:
复制代码 代码如下:

<table border="0" cellpadding="0" cellspacing="0" width="100%" height="100%" id="table1">
<tr>
<td width="255" height="100%" valign="middle">
<input id="fileup" style="width: 253px; height: 22px" type="file" size="23" name="file1"
runat="server" onchange="checkdata()"><br>
注:这里可以是图片(jpg或gif格式),flash动画(swf)及视频文件(wmv,mpeg,asf,avi)。大小限定在1m以内。
</td>
<td>
<div id="previewimage">当前页预览</div>
</td>
</tr>
</table>

弹出预览页面:
复制代码 代码如下:

<script language="javascript">
function getstr()
{
var strcode="";
var width=100;
var high=100;
if(self.opener.document.getelementbyid("fileup")!=null)
{
//strcode=self.opener.document.getelementbyid("previewimage").innerhtml;
width=self.opener.document.getelementbyid("lblwidth").innertext;
high=self.opener.document.getelementbyid("lblhigh").innertext;
var filename=self.opener.document.getelementbyid("fileup").value;
var exname=filename.substr(filename.lastindexof(".")+1).touppercase()
if(exname=="jpg"||exname=="bmp"||exname=="gif")
{
//document.getelementbyid("myimg").src=filename;
strcode='<img src=\''+filename+'\' width='+width+' height='+high+' >';
}
else
if(exname=="swf")
{
strcode='<embed src=\''+filename+'\' width=\''+width+'\' height=\''+high+'\' quality=\'high\' ></embed>';
}
else
if(exname=="wmv"||exname=="mpeg"||exname=="asf"||exname=="avi")
{
strcode='<embed src=\''+filename+'\' border=\'0\' width=\''+width+'\' height=\''+high+'\' quality=\'high\' ';
strcode+=' autostart=\'1\' playcount=\'0\' enablecontextmenu=\'0\' type=\'application/x-mplayer2\'></embed>';
}
}
if(self.opener.document.getelementbyid("txtadcode")!=null)
{
strcode=self.opener.document.getelementbyid("txtadcode").innerhtml;
}
if(strcode!="")
{
//window.alert(filename);
document.getelementbyid("showimg").innerhtml=strcode;
}
}
</script>

显示:
复制代码 代码如下:

<div id="showimg"></div>