原生js FileReader对象实现图片上传本地预览效果


Posted in Javascript onMarch 27, 2020

本文实例为大家分享了js实现图片上传本地预览效果的具体代码,供大家参考,具体内容如下

原生js FileReader对象实现图片上传本地预览效果

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="ie=edge">
 <title>Document</title>
 <style>
 label{display: inline-block;width:200px;height:40px;border:1px solid #ccc;}
 .ob{background:#ccc;padding:10px;}
 .imgbox img{height:100px;width:100px;margin:10px;}
 </style>
</head>
<body>
 <div class="ob" id="od" draggable="true">
 <input type="file" id="file" multiple="multiple">
 </div>
 <div class="imgbox"></div>
 <script>
 //获取文件url
 function createObjectURL(blob){
 if (window.URL){
 return window.URL.createObjectURL(blob);
 } else if (window.webkitURL){
 return window.webkitURL.createObjectURL(blob);
 } else {
 return null;
 }
 }

 var box = document.querySelector(".imgbox"); //显示图片box
 var file = document.querySelector("#file"); //file对象
 var domFragment = document.createDocumentFragment(); //文档流优化多次改动dom

 //触发选中文件事件
 file.onchange = function(e){
 box.innerHTML =""; //清空上一次显示图片效果
 e = e || event;
 var file = this.files; //获取选中的文件对象

 for(var i = 0, len = file.length; i < len; i++){
 var imgTag = document.createElement("img");
 var fileName = file[i].name; //获取当前文件的文件名
 var url = createObjectURL(file[i]); //获取当前文件对象的URL

 //忽略大小写
 var jpg = (fileName.indexOf(".jpg") > -1) || (fileName.toLowerCase().indexOf(".jpg") > -1);
 var png = (fileName.indexOf(".png") > -1) || (fileName.toLowerCase().indexOf(".png") > -1);
 var jpeg = (fileName.indexOf(".jpeg") > -1) || (fileName.toLowerCase().indexOf(".jpeg") > -1);

 //判断文件是否是图片类型
 if(jpg || png || jpeg){
  imgTag.src = url;
  domFragment.appendChild(imgTag);
 }else{
  alert("请选择图片类型文件!");
 }
 }

 //最佳显示
 box.appendChild(domFragment);

 }

 </script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Jquery中的CheckBox、RadioButton、DropDownList的取值赋值实现代码
Oct 12 Javascript
jquery的map与get方法详解
Nov 04 Javascript
js实现图片放大和拖拽特效代码分享
Sep 05 Javascript
js实现加载页面就自动触发超链接的示例
Aug 31 Javascript
Swiper自定义分页器使用详解
Dec 28 Javascript
vue 实现全选全不选的示例代码
Mar 29 Javascript
Vue下路由History模式打包后页面空白的解决方法
Jun 29 Javascript
vue项目出现页面空白的解决方案
Oct 31 Javascript
javascript实现雪花飘落效果
Aug 19 Javascript
Kettle中使用JavaScrip调用jar包对文件内容进行MD5加密的操作方法
Sep 04 Javascript
微信小程序基于高德地图API实现天气组件(动态效果)
Oct 22 Javascript
JS操作JSON常用方法(10w阅读)
Dec 06 Javascript
JavaScript解析任意形式的json树型结构展示
Jul 23 #Javascript
Node.js如何实现注册邮箱激活功能 (常见)
Jul 23 #Javascript
jQuery.Ajax()的data参数类型详解
Jul 23 #jQuery
vue axios用法教程详解
Jul 23 #Javascript
bootstrap table插件的分页与checkbox使用详解
Jul 23 #Javascript
关于JavaScript中的this指向问题总结篇
Jul 23 #Javascript
浅析JS中常用类型转换及运算符表达式
Jul 23 #Javascript
You might like
php使用curl和正则表达式抓取网页数据示例
2014/04/13 PHP
jQuery向下滚动即时加载内容实现的瀑布流效果
2016/01/07 PHP
PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)
2016/09/11 PHP
javascript 写类方式之二
2009/07/05 Javascript
JavaScript编程开发中的五个实用小技巧
2010/07/22 Javascript
基于JQuery的类似新浪微博展示信息效果的代码
2012/07/23 Javascript
深入理解jquery跨域请求方法
2016/05/18 Javascript
详解nodejs与javascript中的aes加密
2016/05/22 NodeJs
微信小程序 wxapp内容组件 icon详细介绍
2016/10/31 Javascript
微信小程序promsie.all和promise顺序执行
2017/10/27 Javascript
webpack 静态资源集中输出的方法示例
2018/11/09 Javascript
泛谈JS逻辑判断选择器 || &amp;&amp;
2019/05/24 Javascript
《javascript设计模式》学习笔记四:Javascript面向对象程序设计链式调用实例分析
2020/04/07 Javascript
vue中的循环对象属性和属性值用法
2020/09/04 Javascript
[48:47]VGJ.S vs NB 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[50:15]VP vs Mineski 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
[51:32]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
Python批量查询域名是否被注册过
2017/06/21 Python
在Python中执行系统命令的方法示例详解
2017/09/14 Python
Python 图像处理: 生成二维高斯分布蒙版的实例
2019/07/04 Python
python面向对象 反射原理解析
2019/08/12 Python
关于阿里云oss获取sts凭证 app直传 python的实例
2019/08/20 Python
3行Python代码实现图像照片抠图和换底色的方法
2019/10/10 Python
opencv 查找连通区域 最大面积实例
2020/06/04 Python
TripAdvisor瑞典:全球领先的旅游网站
2017/12/11 全球购物
Zavvi西班牙:电子游戏、极客服装、Blu-ray、Funko Pop等
2019/05/03 全球购物
Myprotein荷兰官网:欧洲第一运动营养品牌
2020/07/11 全球购物
全球最大的瓷器、水晶和银器零售商:Replacements
2020/06/15 全球购物
结婚喜宴主持词
2014/03/14 职场文书
酒店优秀员工事迹材料
2014/06/02 职场文书
花坛标语大全
2014/06/30 职场文书
社会实践的活动方案
2014/08/22 职场文书
大学生自我评价范文
2015/03/03 职场文书
2015年财务经理工作总结
2015/05/13 职场文书
《开国大典》教学反思
2016/02/16 职场文书
navicat 连接Ubuntu虚拟机的mysql的操作方法
2022/04/02 MySQL