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 相关文章推荐
PNG背景在不同浏览器下的应用
Jun 22 Javascript
Jquery 学习笔记(一)
Oct 13 Javascript
replace()方法查找字符使用示例
Oct 28 Javascript
js控制元素显示在屏幕固定位置及监听屏幕高度变化的方法
Aug 11 Javascript
详细谈谈javascript的对象
Jul 31 Javascript
JavaScript利用闭包实现模块化
Jan 13 Javascript
微信小程序-获得用户输入内容
Feb 13 Javascript
EL表达式截取字符串的函数说明
Sep 22 Javascript
Java设计中的Builder模式的介绍
Mar 22 Javascript
Element-ui自定义table表头、修改列标题样式、添加tooltip、:render-header使用
Apr 11 Javascript
Vue通过配置WebSocket并实现群聊功能
Dec 31 Javascript
vue-cli3.0修改打包后的文件名和文件地址,打包后本地运行报错解决
Apr 06 Vue.js
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函数checkdnsrr用法详解(Windows平台用法)
2016/03/21 PHP
浅析php静态方法与非静态方法的用法区别
2016/05/17 PHP
PHP验证码无法显示的原因及解决办法
2017/08/11 PHP
基于JQuery实现鼠标点击文本框显示隐藏提示文本
2012/02/23 Javascript
深入理解JavaScript系列(14) 作用域链介绍(Scope Chain)
2012/04/12 Javascript
javascript判断两个IP地址是否在同一个网段的实现思路
2013/12/13 Javascript
一个CSS+jQuery实现的放大缩小动画效果
2014/02/19 Javascript
javascript中的return和闭包函数浅析
2014/06/06 Javascript
jQuery晃动层特效实现方法
2015/03/09 Javascript
微信小程序 教程之列表渲染
2016/10/18 Javascript
xmlplus组件设计系列之文本框(TextBox)(3)
2017/05/03 Javascript
javascript+html5+css3自定义提示窗口
2017/06/21 Javascript
jquery 一键复制到剪切板的实例
2017/09/20 jQuery
easyui下拉框动态级联加载的示例代码
2017/11/29 Javascript
js限制输入框只能输入数字(onkeyup触发)
2018/09/28 Javascript
微信小程序自定义轮播图
2018/11/04 Javascript
服务端预渲染之Nuxt(使用篇)
2019/04/08 Javascript
vue使用video.js进行视频播放功能
2019/07/18 Javascript
vue cli3适配所有端方案的实现
2020/04/13 Javascript
基于js实现数组相邻元素上移下移
2020/05/19 Javascript
js验证账户名是否重复
2020/05/26 Javascript
[03:17]史诗级大片应援2018DOTA2国际邀请赛 致敬每一位坚守遗迹的勇士
2018/07/20 DOTA
请不要重复犯我在学习Python和Linux系统上的错误
2016/12/12 Python
Python实现读取json文件到excel表
2017/11/18 Python
python GUI库图形界面开发之PyQt5拖放控件实例详解
2020/02/25 Python
python中time.ctime()实例用法
2021/02/03 Python
浅谈HTML5中dialog元素尝鲜
2018/10/15 HTML / CSS
怎样从/向数据文件读/写结构
2014/11/23 面试题
后勤园长自我鉴定
2013/10/17 职场文书
英文版区域经理求职信
2013/10/23 职场文书
职业生涯规划书范文
2014/03/10 职场文书
刑事代理授权委托书
2014/09/17 职场文书
2016年大学光棍节活动总结
2016/04/05 职场文书
Python还能这么玩之用Python修改了班花的开机密码
2021/06/04 Python
Redis字典实现、Hash键冲突及渐进式rehash详解
2021/09/04 Redis
MySQL数据库实验之 触发器和存储过程
2022/06/21 MySQL