js图片上传预览功能
2012-11-13 16:18
459 查看
最近项目中用到的图片上传前预览功能,兼容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" onchange="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; }
觉得这个人写的不错,目前兼容好几款浏览器。
原文链接 /article/5808594.html
相关文章推荐
- js上传图片及预览功能
- JS实现上传图片的三种方法并实现预览图片功能
- 文件上传js插件,附带图片预览与验证功能,未完待续,请大神不啬指正,指教。
- js实现IE7图片上传预览的功能代码
- js实现图片上传预览功能
- 上传图片,多图上传,预览功能,js原生无依赖
- JS,jQuery轻松实现input图片上传预览功能
- js实现前端图片上传即时预览功能
- js上传图片预览功能代码,兼容IE,FireFox,Chrome浏览器
- js图片上传预览功能兼容实现
- 图片上传的预览功能(js)
- 实现JS上传图片预览功能
- JS实现上传图片预览功能
- js图片上传预览功能
- JS 上传图片 提前预览功能 .NET
- Vue.js 2.0 移动端拍照压缩图片上传预览功能
- vue.js 实现图片本地预览 裁剪 压缩 上传功能
- JS中利用FileReader实现上传图片前本地预览功能
- js实现图片上传并预览功能
- 上传图片预览功能的IE浏览器兼容性问题的实现:JS+JQuery+CSS完整版