图片上传前预览

本文介绍了一个兼容FF及IE8、9等浏览器的文件上传实时预览功能实现方案。该方案利用HTML5的FileReader API实现了跨浏览器兼容性,并对不同浏览器下的实现细节进行了说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 
  1. <!DOCTYPE html > 
  2. <%@ page language="java" contentType="text/html; charset=UTF-8" 
  3.     pageEncoding="UTF-8"%> 
  4. <%@ include file="/common/taglibs.inc"%> 
  5. <html> 
  6. <head> 
  7. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
  8. <title>测试下拉框</title> 
  9. <script type="text/JavaScript" src="${ctx }/js/jquery1.7.2.js"></script> 
  10. <script type="text/javascript"> 
  11.     function previewIMG(img) { 
  12.         if (img.files && img.files[0]) { 
  13.             var reader = new FileReader(); 
  14.             reader.onload = function(e) { 
  15.                 $('#blah') 
  16.                 .attr('src', e.target.result); 
  17.             } 
  18.             reader.readAsDataURL(img.files[0]); //URL是一起的,编辑器可能认为是敏感字符串,去掉空格就可以了
  19.  
  20.             $("#imgDiv").show(); 
  21.         } else { 
  22.             //IE下,使用滤镜        
  23.             img.select();     
  24.             var imgSrc = document.selection.createRange().text;     
  25.             var localImagId = document.getElementById("blah");       //必须设置初始大小     
  26.             localImagId.style.width = "450px";     
  27.             localImagId.style.height = "300px";       
  28.             //图片异常的捕捉,防止用户修改后缀来伪造图片     
  29.             try{           
  30.                 localImagId.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";   
  31.                 localImagId.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc;     
  32.                 }catch(e){           
  33.                     alert("您上传的图片格式不正确,请重新选择!");      
  34.                     return false;      
  35.                 } 
  36.                 document.selection.empty(); 
  37.                 $("#imgDiv").show(); 
  38.         } 
  39.     } 
  40. </script> 
  41. </head> 
  42. <body> 
  43.     <input type="file" id="loadFile" name="loadFile" 
  44.         onchange="previewIMG(this)" /> 
  45.         <div id="imgDiv" style="display:none;"> 
  46.             <img id="blah"> 
  47.         </div> 
  48. </body> 
  49. </html> 

上面的代码兼容FF\IE8\9,其他的没有测试过。欢迎大家测试。

在网上找了很多都没有能兼容的,后来就查了下html5的filereader,火狐下的是用filereader做的。其实上面的代码只要浏览器可以使用html5可以兼容。样式有点丑。凑合着看.上个图片预览下

 

火狐下:

 

 

本文出自 “Just do it” 博客,请务必保留此出处http://davenzeng.blog.51cto.com/3896952/1079391

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值