原生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 相关文章推荐
如何取得中文输入的真实长度?
Jun 24 Javascript
JavaScript 获得选中文本内容的方法
Feb 15 Javascript
javascript中自定义对象的属性方法分享
Jul 12 Javascript
AngularJS基础 ng-href 指令用法
Aug 01 Javascript
Angular 4根据组件名称动态创建出组件的方法教程
Nov 01 Javascript
select获取下拉框的值 下拉框默认选中方法
Feb 28 Javascript
解析vue data不可以使用箭头函数问题
Jul 03 Javascript
详解React中合并单元格的正确写法
Jan 08 Javascript
记一次vue-webpack项目优化实践详解
Feb 17 Javascript
解决layui 三级联动下拉框更新时回显的问题
Sep 03 Javascript
解决Layui 表格自适应高度的问题
Nov 15 Javascript
vue报错function () { [native code] },无法出现我们想要的内容 Unknown custom element
Apr 11 Vue.js
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
浅析SVN常见问题及解决方法
2013/06/21 PHP
php基于Snoopy解析网页html的方法
2015/07/09 PHP
PHP中list方法用法示例
2016/12/01 PHP
在JavaScript中遭遇级联表达式陷阱
2007/03/08 Javascript
Google韩国首页图标动画效果
2007/08/26 Javascript
Javascript 错误处理的几种方法
2009/06/13 Javascript
jquery isType() 类型判断代码
2011/02/14 Javascript
JS 数字转换研究总结
2013/12/26 Javascript
Nodejs进程管理模块forever详解
2014/06/01 NodeJs
JS定义网页表单提交(submit)的方法
2015/03/20 Javascript
纯javascript制作日历控件
2015/07/17 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
2016/01/05 Javascript
JS提示:Uncaught SyntaxError:Unexpected token ) 错误的解决方法
2016/08/19 Javascript
jQuery实现微信长按识别二维码功能
2016/08/26 Javascript
详解如何在vue中使用sass
2017/06/21 Javascript
Vue 使用 Mint UI 实现左滑删除效果CellSwipe
2018/04/27 Javascript
vue mounted 调用两次的完美解决办法
2018/10/29 Javascript
浅析vue中的MVVM实现原理
2019/03/04 Javascript
vue实现自定义H5视频播放器的方法步骤
2019/07/01 Javascript
layui之数据表格--与后台交互获取数据的方法
2019/09/29 Javascript
Python实现Tab自动补全和历史命令管理的方法
2015/03/12 Python
Python监控主机是否存活并以邮件报警
2015/09/22 Python
python 批量修改/替换数据的实例
2018/07/25 Python
python使用循环打印所有三位数水仙花数的实例
2018/11/13 Python
详解python持久化文件读写
2019/04/06 Python
python简单实现最大似然估计&amp;scipy库的使用详解
2020/04/15 Python
重新定义牛仔布,100美元以下:Warp + Weft
2018/07/25 全球购物
不用游标的SQL语句有哪些
2012/09/07 面试题
介绍一下Ruby的多线程处理
2013/02/01 面试题
师范应届生求职信
2013/11/15 职场文书
决定成败的关键——创业计划书
2014/01/24 职场文书
社区母亲节活动方案
2014/03/05 职场文书
政府门卫岗位职责
2014/04/29 职场文书
市政管理求职信范文
2014/05/07 职场文书
秋季校运会广播稿100字
2014/09/18 职场文书
收入证明申请书
2015/06/12 职场文书