原生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 相关文章推荐
实用javaScript技术-屏蔽类
Aug 15 Javascript
js 输出内容到新窗口具体实现代码
May 31 Javascript
js css后面所带参数含义介绍
Aug 18 Javascript
jQuery中:input选择器用法实例
Jan 03 Javascript
深入分析Javascript跨域问题
Apr 17 Javascript
移动端H5开发 Turn.js实现很棒的翻书效果
Jun 20 Javascript
JavaScript实现分页效果
Mar 28 Javascript
BootStrap表单验证 FormValidation 调整反馈图标位置的实例代码
May 17 Javascript
一个简易的js图片轮播效果
Jul 22 Javascript
微信小程序实现图片上传功能
May 28 Javascript
vue2过滤器模糊查询方法
Sep 16 Javascript
在Node.js下运用MQTT协议实现即时通讯及离线推送的方法
Jan 24 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
一个odbc连mssql分页的类
2006/10/09 PHP
PHP入门速成教程
2007/03/19 PHP
php常用Output和ptions/Info函数集介绍
2013/06/19 PHP
利用php抓取蜘蛛爬虫痕迹的示例代码
2016/09/30 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
Swoole源码中如何查询Websocket的连接问题详解
2020/08/30 PHP
幻宇的层模拟窗口效果-提供演示和下载
2007/01/20 Javascript
jQuery使用手册之二 DOM操作
2007/03/24 Javascript
浅析JavaScript中的类型和对象
2013/11/29 Javascript
JavaScript实现防止网页被嵌入Frame框架的代码分享
2014/12/29 Javascript
跟我学习javascript的arguments对象
2015/11/16 Javascript
详解JavaScript的表达式与运算符
2015/11/30 Javascript
Javascript 函数的四种调用模式
2016/11/05 Javascript
详解使用nvm安装node.js
2017/07/18 Javascript
jQuery实现IE输入框完成placeholder标签功能的方法
2017/09/20 jQuery
打造通用的匀速运动框架(实例讲解)
2017/10/17 Javascript
VUE-cli3使用 svg-sprite-loader
2018/10/20 Javascript
layui 图片上传+表单提交+ Spring MVC的实例
2019/09/21 Javascript
vue2.* element tabs tab-pane 动态加载组件操作
2020/07/19 Javascript
详解Python中的装饰器、闭包和functools的教程
2015/04/02 Python
python监控linux内存并写入mongodb(推荐)
2017/09/11 Python
Python语言实现百度语音识别API的使用实例
2017/12/13 Python
Python使用matplotlib绘制随机漫步图
2018/08/27 Python
Python读取txt内容写入xls格式excel中的方法
2018/10/11 Python
Tesserocr库的正确安装方式
2018/10/19 Python
Django 框架模型操作入门教程
2019/11/05 Python
selenium 多窗口切换的实现(windows)
2020/01/18 Python
CSS3中的clip-path使用攻略
2015/08/03 HTML / CSS
CSS3 中filter(滤镜)属性使用详解
2020/04/07 HTML / CSS
html5实现的便签特效(实战分享)
2013/11/29 HTML / CSS
幼儿园大班毕业教师寄语
2014/04/03 职场文书
2014年教师节红领巾广播稿
2014/09/10 职场文书
治庸问责心得体会
2014/09/12 职场文书
2015年九一八事变纪念日演讲稿
2015/03/19 职场文书
PHP对接阿里云虚拟号的实现(号码隐私保护)
2021/04/06 PHP
使用vue判断当前环境是安卓还是IOS
2022/04/12 Vue.js