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屏蔽鼠标键盘(右键/Ctrl+N/Shift+F10/F11/F5刷新/退格键)
Jan 24 Javascript
Node.js与PHP、Python的字符处理性能对比
Jul 06 Javascript
JavaScript中DOM详解
Apr 13 Javascript
JavaScript获取数组最小值和最大值的方法
Jun 09 Javascript
jQuery遮罩层效果实例分析
Jan 14 Javascript
JS弹性运动实现方法分析
Dec 15 Javascript
浅谈键盘上回车按钮的js触发事件
Feb 13 Javascript
js+html5 canvas实现ps钢笔抠图
Apr 28 Javascript
Vue 通过公共字段,拼接两个对象数组的实例
Nov 07 Javascript
Vue路由切换页面不更新问题解决方案
Jul 10 Javascript
js实现列表按字母排序
Aug 11 Javascript
原生js实现俄罗斯方块
Oct 20 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页面局部刷新功能的实现小结
2013/06/21 PHP
php并发加锁示例
2016/10/17 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
Js日期选择器并自动加入到输入框中示例代码
2013/08/02 Javascript
javascript验证上传文件的类型限制必须为某些格式
2013/11/14 Javascript
js与jquery获取父级元素,子级元素,兄弟元素的实现方法
2014/01/09 Javascript
跟我学Nodejs(一)--- Node.js简介及安装开发环境
2014/05/20 NodeJs
JavaScript中的apply和call函数详解
2014/07/20 Javascript
javascript搜索框点击文字消失失焦时文本出现
2014/09/18 Javascript
微信小程序-消息提示框实例
2016/11/24 Javascript
Bootstrap整体框架之CSS12栅格系统
2016/12/15 Javascript
javascript数组去重方法分析
2016/12/15 Javascript
JS基于面向对象实现的多个倒计时器功能示例
2017/02/28 Javascript
如何抽象一个Vue公共组件
2017/10/17 Javascript
Bootstrap 模态框自定义点击和关闭事件详解
2018/08/10 Javascript
vue+element的表格实现批量删除功能示例代码
2018/08/17 Javascript
微信小程序request请求封装,验签代码实例
2019/12/04 Javascript
vue中watch和computed的区别与使用方法
2020/08/23 Javascript
python中__call__方法示例分析
2014/10/11 Python
Python中atexit模块的基本使用示例
2015/07/08 Python
Python随手笔记第一篇(2)之初识列表和元组
2016/01/23 Python
用python实现对比两张图片的不同
2018/02/05 Python
python3中pip3安装出错,找不到SSL的解决方式
2019/12/12 Python
tensorflow的ckpt及pb模型持久化方式及转化详解
2020/02/12 Python
Python生成器实现简单&quot;生产者消费者&quot;模型代码实例
2020/03/27 Python
Python正则表达式如何匹配中文
2020/05/27 Python
使用Python获取爱奇艺电视剧弹幕数据的示例代码
2021/01/12 Python
美国围栏公司:Walpole Outdoors
2019/11/19 全球购物
全球采购的街头服饰和帽子:Urban Excess
2020/10/28 全球购物
中药专业自荐信范文
2014/03/18 职场文书
《花瓣飘香》教学反思
2014/04/15 职场文书
服务标语口号
2014/07/01 职场文书
英语课外活动总结
2014/08/27 职场文书
大学生年度个人总结
2015/02/15 职场文书
2016年员工年度考核评语
2015/12/02 职场文书
教你在 Java 中实现 Dijkstra 最短路算法的方法
2022/04/08 Java/Android