zoukankan      html  css  js  c++  java
  • File文件控件,选中文件(图片,flash,视频)即立即预览显示

       继续总结项目里的一些小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>


  • 相关阅读:
    批处理文件双击运行成功,程序调用却运行失败解决方案
    前端安全之加解密种类与HTTPS加密原理(二)
    node包管理nvm与pnpm(一)
    React状态管理—reduxAPI原理分析(三)
    动态规划原理与算法实践(二)
    双指针算法基本原理和实践(一)
    分治算法基本原理和实践(三)
    编程范式(一)
    Java基础
    前端模块化CommonJS、AMD、CMD、ES6模块(二)
  • 原文地址:https://www.cnblogs.com/ltp/p/289688.html
Copyright © 2011-2022 走看看