zoukankan      html  css  js  c++  java
  • 使用FileReader实现前端图片预览

      在FileReader出现之前,前端的图片预览是这样实现的:把本地图片上传到服务器,服务器把图片地址返回,并把它替换到图片元素的src属性。
      这种方法的缺点是:必须要先把图片上传到服务器。那么问题来了,如果上传的图片很大,而网速又很慢,这就需要等待很久预览图片才会显示出来了,而且,如果用户预览图片后发现不太满意,想重新选择一张图片,这时候还要把已经上传到服务器上的图片给删除掉。
      自从有了HTML5的FileReader对象以后,预览图片变得简单多了,不再需要后台的配合,并且JS操作本地文件已经成为了可能。这种方法的思路是:通过FileReader.prototype.readAsDataURL()方法把图片文件转成base64编码,然后把base64编码替换到预览图片的src属性即可。如果想要了解更多关于FileReader对象的,可以看一下这里:FileReader https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader
      下面是使用FileReader进行图片预览的简单demo:
     1 <!doctype html>
     2 <html lang="en">
     3 <head>
     4   <meta charset="UTF-8">
     5   <title>Document</title>
     6 </head>
     7 <body>
     8 <input type="file"><br>
     9 <img src="" height="200" alt="Image preview area..." title="preview-img">
    10 <script>
    11   var fileInput = document.querySelector('input[type=file]'),
    12           previewImg = document.querySelector('img');
    13   fileInput.addEventListener('change', function () {
    14       var file = this.files[0];
    15       var reader = new FileReader();
    16       // 监听reader对象的的onload事件,当图片加载完成时,把base64编码賦值给预览图片
    17       reader.addEventListener("load", function () {
    18           previewImg.src = reader.result;
    19       }, false);
    20       // 调用reader.readAsDataURL()方法,把图片转成base64
    21       reader.readAsDataURL(file);
    22   }, false);
    23 </script>
    24 </body>
    25 </html>

      关于图片预览的就写到这里啦,如果哪些地方写得不对或者问题的,亲们可以在评论提出~

      今天是大年初九,也是上班的第一天,新的一年,新的开始,新的期待。祝愿亲们2017身体健康、代码无bug!
  • 相关阅读:
    C#在winform中操作数据库,实现数据增删改查
    未开启Hyper-V,却提示VMware Workstation与Hyper-V不兼容。
    winform实例(5)-截屏工具+保存
    winform实例(4)-播放器(wmp)
    winform实例(3)-利用摄像头进行拍照
    winform实例(2)-简单浏览器
    winform实例(1)-简单记事本
    C#异常处理
    百度文库下载破解
    学习小技能-封装字段
  • 原文地址:https://www.cnblogs.com/yugege/p/6367833.html
Copyright © 2011-2022 走看看