js实现的在本地预览图片功能示例


Posted in Javascript onNovember 09, 2019

本文实例讲述了js实现的在本地预览图片功能。分享给大家供大家参考,具体如下:

移动web

<body>
<form enctype="multipart/form-data" name="form1">
上传文件:<input id="f" type="file" name="f" onchange="change()" />
预览:<img id="preview" alt="" name="pic" width="300" height="150" />
</form>
<script>
function change() {
   var pic = document.getElementById("preview");
   var file = document.getElementById("f");
   var ext=file.value.substring(file.value.lastIndexOf(".")+1).toLowerCase();//js获取文件名的后缀
   html5Reader(file);
 }
 function html5Reader(file){
   var file = file.files[0];
   var reader = new FileReader();
   reader.readAsDataURL(file);
   reader.onload = function(e){
     var pic = document.getElementById("preview");
     pic.src=this.result;
   }
 }
</script>  
</body>
</html>

兼容ie版本

function change() {
   var pic = document.getElementById("preview");
   var file = document.getElementById("f");
   var ext=file.value.substring(file.value.lastIndexOf(".")+1).toLowerCase();
   // gif在IE浏览器暂时无法显示
   if(ext!='png'&&ext!='jpg'&&ext!='jpeg'){
     alert("文件必须为图片!"); return;
   }
   // IE浏览器
   if (document.all) {
     file.select();
     var reallocalpath = document.selection.createRange().text;
     var ie6 = /msie 6/i.test(navigator.userAgent);
     // IE6浏览器设置img的src为本地路径可以直接显示图片
     if (ie6) pic.src = reallocalpath;
     else {
       // 非IE6版本的IE由于安全问题直接设置img的src无法显示本地图片,但是可以通过滤镜来实现
       pic.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='image',src=\"" + reallocalpath + "\")";
       // 设置img的src为base64编码的透明图片 取消显示浏览器默认图片
       pic.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==';
     }
   }else{
     html5Reader(file);
   }
 }
 function html5Reader(file){
   var file = file.files[0];
   var reader = new FileReader();
   reader.readAsDataURL(file);
   reader.onload = function(e){
     var pic = document.getElementById("preview");
     pic.src=this.result;
   }
 }

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
些很实用且必用的小脚本代码
Jun 26 Javascript
JavaScript高级程序设计阅读笔记(五) ECMAScript中的运算符(一)
Feb 27 Javascript
js判断上传文件后缀名是否合法
Jan 28 Javascript
学习使用bootstrap基本控件(table、form、button)
Apr 12 Javascript
JS/jQ实现免费获取手机验证码倒计时效果
Jun 13 Javascript
JavaScript类的写法
Sep 17 Javascript
js实现上传图片预览方法
Oct 25 Javascript
微信小程序 表单Form实例详解(附源码)
Dec 22 Javascript
node通过npm写一个cli命令行工具
Oct 12 Javascript
Jquery和CSS实现选择框重置按钮功能
Nov 08 jQuery
Node.js+Vue脚手架环境搭建的方法步骤
Mar 08 Javascript
JavaScript实现网页计算器功能
Oct 29 Javascript
vue 取出v-for循环中的index值实例
Nov 09 #Javascript
Vue v-for循环之@click点击事件获取元素示例
Nov 09 #Javascript
Vue实现页面添加水印功能
Nov 09 #Javascript
vue 实现特定条件下绑定事件
Nov 09 #Javascript
Vue通过for循环随机生成不同的颜色或随机数的实例
Nov 09 #Javascript
vue 根据选择条件显示指定参数的例子
Nov 09 #Javascript
在vue中动态添加class类进行显示隐藏实例
Nov 09 #Javascript
You might like
php实现的zip文件内容比较类
2014/09/24 PHP
PHP实现二叉树的深度优先与广度优先遍历方法
2015/09/28 PHP
jquery三个关闭弹出层的小示例
2013/11/05 Javascript
JavaScript 实现鼠标拖动元素实例代码
2014/02/24 Javascript
jQuery判断div随滚动条滚动到一定位置后停止
2014/04/02 Javascript
JavaScript函数获取事件源的小例子
2014/05/14 Javascript
jquery幻灯片插件bxslider样式改进实例
2014/10/15 Javascript
JS获取各种宽度、高度的简单介绍
2014/12/19 Javascript
DOM基础教程之使用DOM
2015/01/19 Javascript
JS+CSS实现表格高亮的方法
2015/08/05 Javascript
基于javascript实现窗口抖动效果
2016/01/03 Javascript
微信小程序地图导航功能实现完整源代码附效果图(推荐)
2019/04/28 Javascript
js实现3D旋转效果
2020/08/18 Javascript
Nodejs 数组的队列以及forEach的应用详解
2021/02/25 NodeJs
[01:07:47]Secret vs Optic Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
[01:15]PWL S2开团时刻第二期——他们杀 我就白给
2020/11/25 DOTA
Python日期时间对象转换为字符串的实例
2018/06/22 Python
浅谈pytorch和Numpy的区别以及相互转换方法
2018/07/26 Python
Python面向对象之反射/自省机制实例分析
2018/08/24 Python
深入理解Django-Signals信号量
2019/02/19 Python
Python中新式类与经典类的区别详析
2019/07/10 Python
python从ftp获取文件并下载到本地
2020/12/05 Python
python通过cython加密代码
2020/12/11 Python
澳大利亚领先的折扣药房:Chemist Direct(有中文站)
2018/11/24 全球购物
Talbots官网:美国成熟女装品牌
2019/11/15 全球购物
Prototype如何为一个Ajax添加一个参数
2015/12/06 面试题
门卫岗位职责
2013/11/15 职场文书
教育专业自荐书范文
2013/12/17 职场文书
专升本个人自我评价
2013/12/22 职场文书
医院保洁服务方案
2014/06/11 职场文书
公司法定代表人授权委托书
2014/09/29 职场文书
律师函格式范本
2015/05/27 职场文书
十月围城观后感
2015/06/08 职场文书
航班延误投诉信
2015/07/02 职场文书
2015年教师节新闻稿
2015/07/17 职场文书
Spring JPA 增加字段执行异常问题及解决
2022/06/10 Java/Android