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 相关文章推荐
准确获得页面、窗口高度及宽度的JS
Nov 26 Javascript
jQuery学习笔记(4)--Jquery中获取table中某列值的具体思路
Apr 10 Javascript
jQuery实现隔行背景色变色
Nov 24 Javascript
使用CoffeeScrip优美方式编写javascript代码
Oct 28 Javascript
JS实现Select的option上下移动的方法
Mar 01 Javascript
AngularJS实用开发技巧(推荐)
Jul 13 Javascript
jQuery实现拖动剪裁图片作为头像
Dec 28 Javascript
使用微信内嵌H5网页解决JS倒计时失效问题
Jan 13 Javascript
javascript 中iframe高度自适应(同域)实例详解
May 16 Javascript
React-Native中props具体使用详解
Sep 04 Javascript
JavaScript实现图片懒加载的方法分析
Jul 05 Javascript
html5中sharedWorker实现多页面通信的示例代码
May 07 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和mysql中uft-8中文编码乱码的几种解决办法
2012/04/19 PHP
PHP中数组的三种排序方法分享
2012/05/07 PHP
PHP SESSION的增加、删除、修改、查看操作
2015/03/20 PHP
PHP微信开发之查询城市天气
2016/06/23 PHP
thinkphp的dump函数无输出实例代码
2016/11/15 PHP
限制复选框的最大可选数
2006/07/01 Javascript
推荐11款jQuery开发的复选框和单选框美化插件
2011/08/02 Javascript
精心挑选的15款优秀jQuery 本特效插件和教程
2012/08/06 Javascript
jQuery中offset()方法用法实例
2015/01/16 Javascript
jquery ajax 如何向jsp提交表单数据
2015/08/23 Javascript
js实现鼠标拖拽多选功能示例
2017/08/01 Javascript
JS实现table表格固定表头且表头随横向滚动而滚动
2017/10/26 Javascript
vue组件中的数据传递方法
2018/05/14 Javascript
微信小程序swiper禁止用户手动滑动代码实例
2019/08/23 Javascript
JS自定义右键菜单实现代码解析
2020/07/16 Javascript
javascript实现支付宝滑块验证码效果
2020/07/24 Javascript
解决Vue项目中tff报错的问题
2020/10/21 Javascript
[02:31]DOTA2帕克 英雄基础教程
2013/11/26 DOTA
python3 中文乱码与默认编码格式设定方法
2018/10/31 Python
python实现扫描ip地址的小程序
2019/04/16 Python
Python 函数list&amp;read&amp;seek详解
2019/08/28 Python
详解Python绘图Turtle库
2019/10/12 Python
Keras搭建自编码器操作
2020/07/03 Python
CSS3 3D位移translate效果实例介绍
2016/05/03 HTML / CSS
CSS3实现可关闭的下拉手风琴菜单效果
2015/08/31 HTML / CSS
Html5实现二维码扫描并解析
2016/01/20 HTML / CSS
使用postMessage让 iframe自适应高度的方法示例
2019/10/08 HTML / CSS
什么是动态端口(Dynamic Ports)?动态端口的范围是多少?
2014/12/12 面试题
生物科学专业个人求职信范文
2013/12/07 职场文书
项目管理计划书
2014/01/09 职场文书
先进集体获奖感言
2014/02/13 职场文书
《我的第一本书》教学反思
2014/02/15 职场文书
优秀班组申报材料
2014/12/25 职场文书
nginx location优先级的深入讲解
2021/03/31 Servers
navicat 连接Ubuntu虚拟机的mysql的操作方法
2022/04/02 MySQL
如何解决flex文本溢出问题小结
2022/07/15 HTML / CSS