• 上传图片,预览并保存成blob类型 和 base64


    场景: 获取到一个file类型的图片,如果直接在html中预览?这里就是利用html5的新特性,将图片转换为Base64的形式显示出来。有两种方法:

    方法一:利用URL.createObjectURL()

    <!DOCTYPE html>
    <html>
      <head>
        <title>base</title>
      </head>
    <body>
      <input type="file" name="" id="file">
      <img src="" id="img">
    <script type="text/javascript">
    window.onload = function () {
      let $img = document.getElementById('img')
        file.onchange = function (e) {
          console.log(e.target.files[0])
          let file = e.target.files[0]
          let fileUrl = window.URL.createObjectURL(file)
          $img.src = fileUrl
          img.onload = function () {
          // 手动回收
          URL.revokeObjectURL(fileUrl)
          }
        }
      }
    </script>
    </body>
    </html>

    当选择图片后,生成的img src类似"blob:null/4304d4f3-c13b-43e8-83f6-8c80426520ff",能正常显示图片。

    方法二: 利用FileReader.readAsDataURL()

    <!DOCTYPE html>
    <html>
       <head>
          <title>base</title>
       </head>
    <body>
        <input type="file" name="" id="file">
        <img src="" id="img">
    <script type="text/javascript">
    window.onload = function () {
      let $img = document.getElementById('img')
        file.onchange = function (e) {
          console.log(e.target.files[0])
          let file = e.target.files[0]
          const fr = new FileReader(file)
          fr.readAsDataURL(file)
          fr.onload = function () {
          $img.src = this.result
        }
      }
    }
    </script>
    </body>
    </html>

    img标签的src将会是像这样:"data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABkCAYAAADDhn8LAAA==,能够正常显示。

    原文链接:https://juejin.im/post/5b5187da51882519ec07fa41

  • 相关阅读:
    增强学习笔记 第二章 多臂赌博机问题
    学习计划与目标
    2020秋季新学期
    2019春总结作业
    2019春年第四次课程设计实验报告
    2019春年第三次课程设计实验报告
    2019春年第二次课程设计实验报告
    2019春年第一次课程设计实验报告
    2019春第十二周作业
    2019春第十一周作业
  • 原文地址:https://www.cnblogs.com/szqtiger/p/12096707.html
Copyright © 2020-2023  润新知