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中一维数组和二位数组中的几个问题示例说明
Jul 17 Javascript
用javascript将数据导入Excel示例代码
Sep 10 Javascript
在JavaScript的jQuery库中操作AJAX的方法讲解
Aug 15 Javascript
jquery实现鼠标悬浮停止轮播特效
Aug 20 Javascript
Javascript的表单验证-揭开正则表达式的面纱
Mar 18 Javascript
JavaScript+Java实现HTML页面转为PDF文件保存的方法
May 30 Javascript
解析javascript图片懒加载与预加载的分析总结
Oct 27 Javascript
js对字符串进行编码的方法总结(推荐)
Nov 10 Javascript
JS开发中基本数据类型具体有哪几种
Oct 19 Javascript
jQuery NProgress.js加载进度插件的简单使用方法
Jan 31 jQuery
手把手教你vue-cli单页到多页应用的方法
May 31 Javascript
JS数组中对象去重操作示例
Jun 04 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
重料打造自己的“宝马”---第三代
2021/03/02 无线电
Zend studio for eclipse中使php可以调用mysql相关函数的设置方法
2008/10/13 PHP
PHP根据IP地址获取所在城市具体实现
2013/11/27 PHP
用document.documentElement取代document.body的原因分析
2009/11/12 Javascript
jQuery的强大选择器小结
2009/12/27 Javascript
用jquery实现等比例缩放图片效果插件
2010/07/24 Javascript
推荐40个简单的 jQuery 导航插件和教程(下篇)
2012/09/14 Javascript
AngularJS初始化静态模板详解
2016/01/14 Javascript
AngularJS中$interval的用法详解
2016/02/02 Javascript
js 获取范围内的随机数实例代码
2016/08/02 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
2017/01/13 Javascript
vue深入解析之render function code详解
2017/07/18 Javascript
javascript 判断用户有没有操作页面
2017/10/17 Javascript
create-react-app使用antd按需加载的样式无效问题的解决
2019/02/26 Javascript
vue路由守卫+登录态管理实例分析
2019/05/21 Javascript
uni-app从安装到卸载的入门教程
2020/05/15 Javascript
使用JS实现鼠标放上图片进行放大离开实现缩小功能
2021/01/27 Javascript
详解Python中的静态方法与类成员方法
2017/02/28 Python
pycharm 安装JPype的教程
2019/08/08 Python
python中类的输出或类的实例输出为这种形式的原因
2019/08/12 Python
Windows下Anaconda安装、换源与更新的方法
2020/04/17 Python
python小白学习包管理器pip安装
2020/06/09 Python
python 如何把docker-compose.yaml导入到数据库相关条目里
2021/01/15 Python
windows系统Tensorflow2.x简单安装记录(图文)
2021/01/18 Python
你不知道的葡萄干处理法、橙蜜处理法、二氧化碳酵母法
2021/03/17 冲泡冲煮
TCP协议通讯的过程和步骤是什么
2015/10/18 面试题
临床医学专业毕业生的自我评价
2013/10/17 职场文书
新闻系毕业生推荐信
2013/11/16 职场文书
大专会计自我鉴定
2014/02/06 职场文书
公司年夜饭通知
2015/04/25 职场文书
辣妈辣妹观后感
2015/06/10 职场文书
交通处罚决定书
2015/06/24 职场文书
重温经典:乔布斯在斯坦福大学的毕业演讲(双语)
2019/08/26 职场文书
python实现socket简单通信的示例代码
2021/04/13 Python
python中的装饰器该如何使用
2021/06/18 Python
Mysql开启外网访问
2022/05/15 MySQL