JavaScript使用FileReader实现图片上传预览效果


Posted in Javascript onMarch 27, 2020

FileReader是HTML5 File API的一部分。它实现了一种异步文件读取机制。可以把FileReader想象为XMLHttpRequest,区别只是它读取的是文件系统,而不是远程服务器。为了读取文件中的数据,FileReader提供了如下几个方法。

  • readAsText(file,encoding):以纯文本的方式读取文件,将读取到的文件保存到result属性中。
  • readAsDataURL(file):读取文件并将文件以数据URI的形式保存在result属性中。
  • readAsBinaryString(file):读取文件并将一个字符串保存在result属性中,字符串中的每个字符表示一个字节。
  • readAsArrayBuffer(file):读取文件并将一个包含文件内容的ArrayBuffer保存在result属性中。
  • multiple 属性表示支持多张图片
<div id="wrapper">  
 <input id="fileUpload" type="file" multiple /><br />
 <div id="image-holder"> </div>
</div>
$("#fileUpload").on('change', function () {
 
 //获取上传文件的数量
 var countFiles = $(this)[0].files.length;
 
 var imgPath = $(this)[0].value;
 var extn = imgPath.substring(imgPath.lastIndexOf('.') + 1).toLowerCase();
 var image_holder = $("#image-holder");
 image_holder.empty();
 
 if (extn == "gif" || extn == "png" || extn == "jpg" || extn == "jpeg") {
  if (typeof (FileReader) != "undefined") {
 
   // 循环所有要上传的图片
   for (var i = 0; i < countFiles; i++) {
 
    var reader = new FileReader();
    reader.onload = function (e) {
     $("<img />", {
      "src": e.target.result,
       "class": "thumb-image"
     }).appendTo(image_holder);
    }
 
    image_holder.show();
    reader.readAsDataURL($(this)[0].files[i]);
   }
 
  } else {
   alert("你的浏览器不支持FileReader!");
  }
 } else {
  alert("请选择图像文件。");
 }
});

FileReader 可以支持 Internet Explorer 10+、FireFox,、Chrome 和Opera浏览器。

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

Javascript 相关文章推荐
JavaScript闭包 懂不懂由你反正我是懂了
Oct 21 Javascript
js判断鼠标左、中、右键哪个被点击的方法
Jan 27 Javascript
jQuery的animate函数实现图文切换动画效果
May 03 Javascript
如何利用AngularJS打造一款简单Web应用
Dec 05 Javascript
Jq通过td获取同行其它列td的方法
Oct 05 Javascript
JS自定义滚动条效果简单实现代码
Oct 27 Javascript
JavaScript阻止表单提交方法(附代码)
Aug 15 Javascript
JS实现合并json对象的方法
Oct 10 Javascript
vue 点击按钮实现动态挂载子组件的方法
Sep 07 Javascript
jquery获取img的src值实例介绍
Jan 16 jQuery
js实现多个倒计时并行 js拼团倒计时
Feb 25 Javascript
抖音上用记事本编写爱心小程序教程
Apr 17 Javascript
js防刷新的倒计时代码 js倒计时代码
Sep 06 #Javascript
JavaScript中运算符规则和隐式类型转换示例详解
Sep 06 #Javascript
详解Vue.js组件可复用性的混合(mixin)方式和自定义指令
Sep 06 #Javascript
轻松玩转BootstrapTable(后端使用SpringMVC+Hibernate)
Sep 06 #Javascript
vue mixins组件复用的几种方式(小结)
Sep 06 #Javascript
JavaScript 中Date对象的格式化代码方法汇总
Sep 06 #Javascript
jquery实现限制textarea输入字数的方法
Sep 06 #jQuery
You might like
php删除文件夹及其文件夹下所有文件的函数代码
2013/01/23 PHP
php检测用户是否用手机(Mobile)访问网站的类
2014/01/09 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
由浅到深了解JavaScript类
2006/09/08 Javascript
jQuery一步一步实现跨浏览器的可编辑表格,支持IE、Firefox、Safari、Chrome、Opera
2009/08/28 Javascript
js调用浏览器打印模块实现点击按钮触发自定义函数
2014/03/21 Javascript
jQuery的load()方法及其回调函数用法实例
2015/03/25 Javascript
使用jQuery获取data-的自定义属性
2015/11/10 Javascript
JS与jQuery遍历Table所有单元格内容的方法
2015/12/07 Javascript
JavaScript表单验证实例之验证表单项是否为空
2016/01/10 Javascript
JS区分浏览器页面是刷新还是关闭
2016/04/17 Javascript
AngularJS 中文API参考手册
2016/07/28 Javascript
使用jQuery实现鼠标点击左右按钮滑动切换
2017/08/04 jQuery
深入理解Vue.js源码之事件机制
2017/09/27 Javascript
vue2.0获取鼠标位置的方法
2018/09/13 Javascript
vue 音乐App QQ音乐搜索列表最新接口跨域设置方法
2018/09/25 Javascript
JavaScript数组去重的方法总结【12种方法,号称史上最全】
2019/02/28 Javascript
微信小程序实现卡片左右滑动效果的示例代码
2019/05/01 Javascript
layer ui插件显示tips时,修改字体颜色的实现方法
2019/09/11 Javascript
Auto.JS实现抖音刷宝等刷视频app,自动点赞,自动滑屏,自动切换视频功能
2020/05/08 Javascript
[02:16]2018年度CS GO最具人气选手-完美盛典
2018/12/16 DOTA
Python同时向控制台和文件输出日志logging的方法
2015/05/26 Python
python3.4用循环往mysql5.7中写数据并输出的实现方法
2017/06/20 Python
python 3.0 模拟用户登录功能并实现三次错误锁定
2017/11/01 Python
Matplotlib中rcParams使用方法
2021/01/05 Python
HTML5中form如何关闭自动完成功能的方法
2018/07/02 HTML / CSS
亚马逊印度站:Amazon.in
2017/10/15 全球购物
英国婴儿和儿童服装网站:Vertbaudet
2018/04/02 全球购物
职称自我鉴定
2013/10/15 职场文书
关于人生的感言
2014/01/17 职场文书
老总助理工作岗位职责
2014/02/06 职场文书
农村婚礼主持词
2014/03/13 职场文书
市场部岗位职责范本
2015/04/15 职场文书
无犯罪记录证明样本
2015/06/16 职场文书
2015年秋学期教研工作总结
2015/10/14 职场文书
美元符号 $
2022/02/17 杂记