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

转载 2007年09月14日 12:05:00
  继续总结项目里的一些小TIP,我们平常用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>
   &nbsp;&nbsp;注:这里可以是图片(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>

 转贴

file 选择图片后预览

图片上传预览是比较常见的需求,以前的做法,是在旁边隐藏一个 标签,然后给 file 标签加个事件,当用户选择文件之后,获得文件物理路径(文件绝对路径),然后赋值给 标签的 src 属性。但是现代浏览...
  • zhu562002124
  • zhu562002124
  • 2016年04月19日 11:06
  • 1832

实现图片上传预览和取消文件上传功能

问题由来:自己开发的一个预约系统要实现上传图片预览,自己费了九牛二虎之力,加上查资料才实现功能。下面我的实现思路。 预览功能: 1.首先需要定义一个事件,这个文件选择框发生改变,就触发这个方法,我这里...
  • lkwan123
  • lkwan123
  • 2017年06月01日 15:51
  • 1099

html之file标签 --- 图片上传前预览 -- FileReader

通过file标签和js的FileReader接口,把选择的图片文件调用readAsDataURL方法,把图片数据转成base64字符串形式显示在页面上。 ...
  • u012761229
  • u012761229
  • 2017年02月06日 16:40
  • 314

html5-文件:FileReader实现上传前预览

1、FileReader接口的方法 FileReader接口有4个方法,其中3个用来读取文件,另一个用来中断读取。无论读取成功或失败,方法并不会返回读取结果,这一结果存储在result属性中。 ...
  • zhuchunyan_aijia
  • zhuchunyan_aijia
  • 2016年07月20日 14:13
  • 1609

dxf文件预览打开编辑相关控件推荐

DXF是一种开放的矢量数据格式,可以分为两类:ASCII格式和二进制格式;ASCII具有可读性好的特点,但占有空间较大;二进制格式则占有空间小、读取速度快。由于Autocad现在是最流行的cad系统,...
  • u014542704
  • u014542704
  • 2014年09月25日 17:38
  • 1009

上传图片预览JS脚本 Input file图片预览的实现示例

代码很简单,如下: By:DragonDean //下面用于图片上传预览功能 function setImagePreview(avalue) { var docObj=document....
  • u014796999
  • u014796999
  • 2016年04月23日 14:59
  • 1857

Asp.Net FileUpload选择图片后预览,并直接上传

FileUpload选择图片后先预览图片,然后上传。 使用到FileUpload的onchange事件,及使用一般处理程序(.ashx)来预览图片。 func...
  • diguaqiang
  • diguaqiang
  • 2015年05月22日 10:22
  • 2986

强力推荐几种多媒体播放器方案(jQuery、Flash、HTML5)

记得以前我们想要在网页中插入一段音频或者视频时,首先,baidu或者google一下,目的是要找那段又长又臭的object和embed代码,然后再把它们贴到网页中,然后还发现不同的浏览器写法还不一样,...
  • GoodShot
  • GoodShot
  • 2013年05月06日 15:41
  • 11335

flash 上传文件的actionscript 上传的各方法都有,仅供参考

flash 上传文件的actionscript import flash.net.FileReference; import flash.net.URLRequest; import flash...
  • pukuimin1226
  • pukuimin1226
  • 2013年08月01日 13:28
  • 2883

windwos server 文件夹里的图片都无法预览解决方法

在文件夹选项里勾掉“始终显示图标,从不显示缩略图”,就可以了。
  • happymagic
  • happymagic
  • 2014年08月25日 09:49
  • 6645
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:File文件控件,选中文件(图片,flash,视频)立即预览显示
举报原因:
原因补充:

(最多只允许输入30个字)