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 相关文章推荐
xmlHTTP实例
Oct 24 Javascript
跟我一起学写jQuery插件开发方法(附完整实例及下载)
Apr 01 Javascript
jquery通过closest选择器修改上级元素的方法
Mar 17 Javascript
js中this用法实例详解
May 05 Javascript
AngularJS基础 ng-focus 指令简单示例
Aug 01 Javascript
JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)
Aug 02 Javascript
详解用node-images 打造简易图片服务器
May 08 Javascript
webpack打包并将文件加载到指定的位置方法
Feb 22 Javascript
5分钟学会Vue动画效果(小结)
Jul 21 Javascript
优雅的将ElementUI表格变身成树形表格的方法步骤
Apr 11 Javascript
vue3 源码解读之 time slicing的使用方法
Oct 31 Javascript
vue项目中使用eslint+prettier规范与检查代码的方法
Jan 16 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
ASP.NET中使用后端代码注册脚本 生成JQUERY-EASYUI的界面错位的解决方法
2010/06/12 Javascript
jquery1.5.1中根据元素ID获取元素对象的代码
2011/04/02 Javascript
基于Jquery实现表格动态分页实现代码
2011/06/21 Javascript
jQuery中attr()和prop()在修改checked属性时的区别
2014/07/18 Javascript
jQuery的观察者模式详解
2014/12/22 Javascript
javascript制作的滑动图片菜单
2015/05/15 Javascript
JS实现DIV容器赋值的方法
2015/12/14 Javascript
jQuery实现的网页换肤效果示例
2016/09/20 Javascript
Bootstrap风格的WPF样式
2016/12/07 Javascript
js仿淘宝商品放大预览功能
2017/03/15 Javascript
JS实现的ajax和同源策略(实例讲解)
2017/12/01 Javascript
详解SPA中前端路由基本原理与实现方式
2018/09/12 Javascript
详解axios中封装使用、拦截特定请求、判断所有请求加载完毕)
2019/04/09 Javascript
js打开word文档预览操作示例【不是下载】
2019/05/23 Javascript
JavaScript实现的3D旋转魔方动画效果实例代码
2019/07/31 Javascript
JS实现简单省市二级联动
2019/11/27 Javascript
element-ui点击查看大图的方法示例
2020/12/14 Javascript
Python中的类学习笔记
2014/09/23 Python
用实例分析Python中method的参数传递过程
2015/04/02 Python
在Python中使用HTMLParser解析HTML的教程
2015/04/29 Python
Python上下文管理器和with块详解
2017/09/09 Python
python正则表达式re之compile函数解析
2017/10/25 Python
python取数作为临时极大值(极小值)的方法
2018/10/15 Python
Django实现跨域的2种方法
2019/07/31 Python
python——全排列数的生成方式
2020/02/26 Python
Python实现AI换脸功能
2020/04/10 Python
Python3使用tesserocr识别字母数字验证码的实现
2021/01/29 Python
HTML5 直播疯狂点赞动画实现代码 附源码
2020/04/14 HTML / CSS
您在慕尼黑的跑步商店:Lauf-bar
2019/10/11 全球购物
合作经营协议书范本
2014/04/17 职场文书
审计专业自荐信范文
2014/04/21 职场文书
小学教师先进事迹材料
2014/12/15 职场文书
公司副总经理岗位职责
2015/04/08 职场文书
企业财务管理制度范本
2015/08/04 职场文书
如何用JavaScript学习算法复杂度
2021/04/30 Javascript
GTX1650super好不好 gtx1650super显卡属于什么级别
2022/04/08 数码科技