最近项目中用到的图片上传前预览功能,兼容IE6-9,FF
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<input type=file name="doc" id="doc" οnchange="javascript:setImagePreview();">
<p>
<div id="localImag"><img id="preview" width=-1 height=-1 style="diplay:none" /></div>
</p>
<script>
function setImagePreview() {
var docObj=document.getElementById("doc");
var imgObjPreview=document.getElementById("preview");
if(docObj.files &&    docObj.files[0]){
//火狐下,直接设img属性
imgObjPreview.style.display = 'block';
imgObjPreview.style.width = '300px';
imgObjPreview.style.height = '120px';
//imgObjPreview.src = docObj.files[0].getAsDataURL();
//火狐7以上版本不能用上面的getAsDataURL()方式获取,需要一下方式
imgObjPreview.src = window.URL.createObjectURL(docObj.files[0]);
}else{
//IE下,使用滤镜
docObj.select();
var imgSrc = document.selection.createRange().text;
var localImagId = document.getElementById("localImag");
//必须设置初始大小
localImagId.style.width = "300px";
localImagId.style.height = "120px";
//图片异常的捕捉,防止用户修改后缀来伪造图片
try{
localImagId.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";
localImagId.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc;
}catch(e){
alert("您上传的图片格式不正确,请重新选择!");
return false;
}
imgObjPreview.style.display = 'none';
document.selection.empty();
}
return true;
}
</script>
</body>
</html>

由于项目中有多个上传按钮,需要针对网上示例作一些修改,实际使用代码

View Code
function setImagePreview(fileObj, previewObj, localImg) {
var docObj=document.getElementById(fileObj);
var imgObjPreview=document.getElementById(previewObj);
if(docObj.files && docObj.files[0]){
//火狐下,直接设img属性
imgObjPreview.style.display = 'block';
imgObjPreview.style.width = '120px';
imgObjPreview.style.height = '80px';
//imgObjPreview.src = docObj.files[0].getAsDataURL();
//火狐7以上版本不能用上面的getAsDataURL()方式获取,需要一下方式
imgObjPreview.src = window.URL.createObjectURL(docObj.files[0]);
}else{
//IE下,使用滤镜
docObj.select();
var imgSrc = document.selection.createRange().text;
var localImagId = document.getElementById(localImg);
//必须设置初始大小
localImagId.style.width = "120px";
localImagId.style.height = "80px";
//图片异常的捕捉,防止用户修改后缀来伪造图片
try{
localImagId.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";
localImagId.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc;
}catch(e){
alert("您上传的图片格式不正确,请重新选择!");
return false;
}
imgObjPreview.style.display = 'none';
document.selection.empty();
}
return true;
}

觉得这个人写的不错,目前兼容好几款浏览器。

原文链接 http://www.cnblogs.com/load/archive/2012/03/06/2381657.html

js图片上传预览功能相关推荐

  1. js实现图片上传预览功能

    js实现图片上传预览功能 很多业务场景下,我们需要在用户上传图片前,先预览待上传的图片 <body><input type="file"><img s ...

  2. JAVA实现一个图片上传预览功能

    这个小项目主要使用java实现了一个简单的图片上传预览功能,废话不多说,先上实现成果 ^ _ ^

  3. vue+elementUI 实现图片上传预览功能

    准备工作:你需要一个后台接口,你传文件给他,他返回一个图片在线链接.ok,开干! 用到的是elmentUI里的el-upload,先去看官网例子.我用到的是图片列表 先把html的框架copy过来,然 ...

  4. vue图片上传预览功能

    效果图 html结构 <ul class="gallery-window-map" style="flex-wrap:wrap;"><!--点 ...

  5. 如何实现上传多个图片并依次展示_js前端实现多图图片上传预览的两个方法(推荐)...

    一.将图片转成icon码的实现方式 html代码: js代码 //图片预览功能 function previewImage(file,imgNum) { var MAXWIDTH = 200; var ...

  6. js实现图片上传预览及进度条

    js实现图片上传预览及进度条 原文js实现图片上传预览及进度条 最近在做图片上传的时候,由于产品设计的比较fashion,上网找了比较久还没有现成的,因此自己做了一个,实现的功能如下: 1:去除浏览器 ...

  7. java 图片上传 预览 demo_图片上传预览

    [实例简介] 实现图片上传预览,可以增加新的空数组,并上传和替换.还有删除功能:提交的时候,还可以判断是否有空的img [实例截图] [核心代码] 613ddc50-96b8-4197-ba2e-1e ...

  8. JavaScript 图片上传预览效果

    图片上传预览是一种在图片上传之前对图片进行本地预览的技术. 使用户选择图片后能立即查看图片,而不需上传服务器,提高用户体验. 但随着浏览器安全性的提高,要实现图片上传预览也越来越困难. 不过群众的智慧 ...

  9. ASP.NET工作笔记之一:图片上传预览及无刷新上传

    转自:http://www.cnblogs.com/sibiyellow/archive/2012/04/27/jqueryformjs.html 最近项目里面涉及到无刷新上传图片的功能,其实也就是上 ...

最新文章

  1. iftop 监控linux服务器网卡流量
  2. Dockerfile常见指令优化
  3. ribbon负载均衡@LoadBalanced
  4. 7. SQL -- 创建数据库(表,字段)
  5. android被逼学习布局管理器
  6. 万有引力的意思_万有引力和引力有什么不同?四种基本性质力中电磁力最多
  7. java中的让步_java基本教程之线程让步 java多线程教程
  8. vm虚拟机修改物理时间_GPU虚拟机创建时间深度优化
  9. 计算机工程主编陶小雪,城市环境所在MOFs基催化剂的制备和VOCs催化氧化方面取得进展...
  10. Tough Days
  11. 基于OpenVINO的端到端DL网络-初步接触OpenVINO提供的例子(win+vs)
  12. 微信公众号之测试号申请
  13. Python3-word文档操作(七):提取word文档中的图片方式一-利用word文档的压缩文件属性
  14. 云操作系统,是真的吗?(译文)
  15. 利用python实现微信自动回复群发等操作(不需要登录网页版微信)
  16. IT职场求生法则(3)- 部门经理及副总适用法则
  17. ln x的matlab表示,matlab中ln怎么表示
  18. 关于ADB需要知道的一些知识
  19. 国考省考申论:归纳概括题,审题,找点,加工,书写,概括举措的案例
  20. Android自带模拟器设置Proxy

热门文章

  1. 2020-12-16子类对象指针强转成父类对象指针,父类对象指针调用子类函数问题(待整理)
  2. Android对话框的高级设置《二》设置对话框按钮的透明度和对话框的在屏幕上的显示位置
  3. matlab 画非线性曲线,matlab 非线性曲线拟合, nlinfit  lsqcurvefit  lsqnonlin
  4. python 之图片转字符画
  5. CSDN审核机制有点迷惑,决定逐步搬迁到简书
  6. Android系统信息获取 之十二:获取屏幕分辨率及密度
  7. webgl之helloworld
  8. dpkg命令用法、Ubuntu下deb包的解压、打包、安装、卸载及常用命令参数
  9. Win10使用Xrdp脚本远程桌面连接Ubuntu主机
  10. modbus通讯协议编程实例_三菱PLC CC-LINK通讯编程实例分享,看完你就会了