``` 在浏览器中,通过 `input[type=file]` 来点击上传文件,此时监听 `onChange` 事件,可以获取到 `File` 对象,其中从中可以读取文件内容 而读取文件内容,需要转化 `File/Blob` 到 `Text`,一般使用以下两种方案 ## FileReader API ">
极客时间对于推广渠道会有返利优惠,比如山月在极客时间买了一门课,再把课程分享给好友购买,这时极客时间会向山月返利20元左右。
而我现在做了一个返利平台,你可以在上边通过山月的链接购买课程,此时极客时间会向我返利。为了共同学习,而你可以添加我的微信 (shanyue94),我将把极客时间给我的返利发一个红包全部返给你

# 前端上传文件时如何读取文件内容

Issue

欢迎在 Issue 中交流与讨论: Issue 487 (opens new window)

<input type="file" id="input" onchange="handleFiles(this.files)">

在浏览器中,通过 input[type=file] 来点击上传文件,此时监听 onChange 事件,可以获取到 File 对象,其中从中可以读取文件内容

而读取文件内容,需要转化 File/BlobText,一般使用以下两种方案

# FileReader API

这是最常用处理上传文件的 API,但是却繁琐冗余难记,每次使用基本上都要查文档!

FileReader API 用以读取 File/Blob 内容,正因为繁琐难记,以下实现一个 readBlob 函数读取内容。

function readBlob (blob) {
  return new Promise(resolve => {
    const reader = new FileReader()
    reader.onload = function (e) {
      resolve(e.target.result)  
    }
    reader.readAsText(blob)
  })
}

# Response API

而是用 Response API 只需要一行内容

const readBlob = (blob) => new Response(blob).text()

关于山月

我的项目:
我的微信:shanyue94,欢迎交流
Last Updated: 3/2/2021, 12:46:18 AM