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 相关文章推荐
JavaScript实现继承的4种方法总结
Oct 16 Javascript
jQuery中offsetParent()方法用法实例
Jan 19 Javascript
javascript中clipboardData对象用法详解
May 13 Javascript
改变checkbox默认选中状态及取值的实现代码
May 26 Javascript
BootStrap树状图显示功能
Nov 24 Javascript
JS求解三元一次方程组值的方法
Jan 03 Javascript
微信小程序实现时间预约功能
Nov 27 Javascript
小程序实现订单倒计时功能
Apr 23 Javascript
mpvue实现左侧导航与右侧内容的联动
Oct 21 Javascript
使用这 6个Vue加载动画库来减少我们网站的跳出率
May 18 Vue.js
canvas实现贪食蛇的实践
Feb 15 Javascript
vue中div禁止点击事件的实现
Apr 02 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批量删除cookie的简单实现方法
2015/01/26 PHP
PHP策略模式定义与用法示例
2017/07/27 PHP
解决laravel查询构造器中的别名问题
2019/10/17 PHP
Mozilla中显示textarea中选择的文字
2006/09/07 Javascript
Jquery AJAX 框架的使用方法
2009/11/03 Javascript
jValidate 基于jQuery的表单验证插件
2009/12/12 Javascript
jquery里的正则表达式说明
2011/08/03 Javascript
JavaScript学习笔记记录我的旅程
2012/05/23 Javascript
js nextSibling属性和previousSibling属性概述及使用注意
2013/02/16 Javascript
jQuery jcrop插件截图使用方法
2013/11/20 Javascript
javascript实现依次输入input自动定焦
2014/12/23 Javascript
javascript常用函数(1)
2015/11/04 Javascript
BootStrap点击下拉菜单项后显示一个新的输入框实现代码
2016/05/16 Javascript
深入解析桶排序算法及Node.js上JavaScript的代码实现
2016/07/06 Javascript
一篇文章搞定JavaScript类型转换(面试常见)
2017/01/21 Javascript
Node.js 使用递归实现遍历文件夹中所有文件
2017/09/18 Javascript
Vuejs2 + Webpack框架里,模拟下载的实例讲解
2018/09/05 Javascript
pm2启动ssr失败的解决方法
2019/06/29 Javascript
JS实现随机抽取三人
2019/11/06 Javascript
vue之封装多个组件调用同一接口的案例
2020/08/11 Javascript
Openlayers学习之加载鹰眼控件
2020/09/28 Javascript
[00:32]2018DOTA2亚洲邀请赛Liquid出场
2018/04/03 DOTA
[01:04:14]VP vs TNC 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
[01:10:03]OG vs EG 2018国际邀请赛淘汰赛BO3 第三场 8.23
2018/08/24 DOTA
Python中3种内建数据结构:列表、元组和字典
2014/11/30 Python
python调用机器喇叭发出蜂鸣声(Beep)的方法
2015/03/23 Python
在Python中使用pngquant压缩png图片的教程
2015/04/09 Python
python将文本分每两行一组并保存到文件
2018/03/19 Python
python之Flask实现简单登录功能的示例代码
2018/12/24 Python
对python中list的拷贝与numpy的array的拷贝详解
2019/01/29 Python
tensorflow下的图片标准化函数per_image_standardization用法
2020/06/30 Python
python switch 实现多分支选择功能
2020/12/21 Python
Selenium Webdriver元素定位的八种常用方式(小结)
2021/01/13 Python
英国豪华家具和家居用品购物网站:Teddy Beau
2020/10/12 全球购物
中国梦演讲稿5分钟
2014/08/19 职场文书
vue-cli3.0修改打包后的文件名和文件地址,打包后本地运行报错解决
2022/04/06 Vue.js