上传图片之前预览的效果(支持所有浏览器,包括IE6-8,chrome,opera,firefox等)
来源:互联网 发布:天书世界武将转生数据 编辑:程序博客网 时间:2024/05/18 00:49
文章参考此站点应用,演示:http://www.ibisai.com.cn/
今天在做一个考试系统,需要上传证件照,在选取了文件之后,需要首先预览一下。也就是在没有上传前先预览。
这个最让人头痛的就是兼容各种浏览器,往往IE的可以了,其他的浏览器又不行,经过大半天的尝试,终于能够通过所有浏览器。以下是相应的js代码:
注意,所有的js文件只有两个是外部接口,也就是两个id,分别是上传控件<input type="file">的id为fileid,还有<div>的id为preview,此来显示图片。
最后应用到自己的项目时,只需在以下js代码里改掉这两个id为自己的id即可。
// 获取本地上传的照片路径 function getPath(obj) { if (obj) { //ie if (window.navigator.userAgent.indexOf("MSIE") >= 1) { obj.select(); // IE下取得图片的本地路径 return document.selection.createRange().text; } //firefox else if (window.navigator.userAgent.indexOf("Firefox") >= 1) { if (obj.files) { // Firefox下取得的是图片的数据 return obj.files.item(0).getAsDataURL(); } return obj.value; } return obj.value; } } //显示图片function previewPhoto(){ var picsrc=getPath(document.all.fileid); var picpreview=document.getElementById("preview"); if(!picsrc){ return } if(window.navigator.userAgent.indexOf("MSIE") >= 1) { if(picpreview) { try{ picpreview.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = picsrc; }catch(ex){ alert("文件路径非法,请重新选择!") ; return false; } }else{ picpreview.innerHTML="<img src='"+picsrc+"' />"; } } } function preImg(fileid, imgid) {if (typeof FileReader == 'undefined') {var picsrc=getPath(document.all.fileid)$("#imgid").attr({ src: picsrc});previewPhoto();}else{var reader = new FileReader();var name=$("#fileid").val();var picpreview=document.getElementById("preview"); reader.onload = function(e) {var img = document.getElementById(imgid);//img.src = this.result;picpreview.innerHTML="<img src='"+this.result+"' style='width: 179px; height: 189px;' />"; }reader.readAsDataURL(document.getElementById(fileid).files[0]);}}
<div id="preview" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale); width:180px;height:190px;border:solid 1px black;"> <input type="file" id="fileid" name="photofile" onchange="preImg(this.id,'imgid');"/>
- 上传图片之前预览的效果(支持所有浏览器,包括IE6-8,chrome,opera,firefox等)
- 多图片上传+图片预览,兼容所有浏览器 IE5/IE6/IE7/IE8/IE9/Chrome/Safari/Firefox/Opera/
- 多图片上传+图片预览,兼容所有浏览器 IE5/IE6/IE7/IE8/IE9/Chrome/Safari/Firefox/Opera/
- 多图片上传+图片预览,兼容所有浏览器 IE5/IE6/IE7/IE8/IE9/Chrome/Safari/Firefox/Opera/
- query 图片上传前预览,支持ie6+、firefox、chrome
- js 上传图片预览(Chrome IE ,Firefox,Opera)
- 图片预览 兼容ie6-11,chrome,firefox,opera
- 兼容所有主流浏览器的图片上传本地预览(IE\FIREFOX\CHROME)
- 兼容所有主流浏览器的图片上传本地预览(IE\FIREFOX\CHROME)
- UserScript(用户脚本)在Firefox、Google Chrome、Opera、IE6-9等不同浏览器上的使用
- 太平洋首页焦点图片效果---改进版(支持IE6.0. 7.0,firefox,等众多浏览器)
- 上传图片预览(firefox,IE6,IE7+)
- 图片上传预览 兼容 IE 6 7 8 9 FF chrome opera等版本
- 本地图片上传预览(兼容ie firefox ,chrome等主流浏览器
- 图片上传预览,兼容IE6、IE7、IE8和firefox浏览器
- 网页调用JS音频播放器兼容所有浏览器,包括IE6,7,8,9,FF,GOOGLE,OPERA,360等
- 支持所有浏览器的复制文本到剪切板的ASP代码(IE/Firefox/Opera/netscape/chrome/safari)
- 兼容IE6,IE7,IE8和Firefox的图片上传预览效果
- php静态变量, 成员和方法
- RSA公钥加密算法
- C#加密解密
- 一个android日历(开源的)
- 计算几何样例
- 上传图片之前预览的效果(支持所有浏览器,包括IE6-8,chrome,opera,firefox等)
- 导入android工程@Override报错
- POJ 1062 BFS+DFS
- Android源码50例汇总,欢迎各位下载
- C# 将数据导出到Excel汇总
- SQL Server 连接字符串和身份验证
- 多线程编程您不知道的5件事
- vi/vim鼠标中键粘贴不缩进的方法以及按行整体缩进的方法
- javascript图片预加载技术