Skip to content

read 封装的一些读取函数

读取文件内容

查看代码
typescript
/**
 * 读取文件内容
 *
 * @param file 要读取的文件对象,可以是File或Blob类型
 * @param type 读取类型,可选值为'base64'、'buffer'、'text'
 * @returns 返回Promise对象,根据读取类型解析为string或ArrayBuffer类型
 * @throws 当type参数不是'base64'、'buffer'、'text'其中之一时,会抛出错误
 */
export function readFile(file: File | Blob, type: 'base64'): Promise<string>
export function readFile(file: File | Blob, type: 'text'): Promise<string>
export function readFile(file: File | Blob, type: 'buffer'): Promise<ArrayBuffer>
export function readFile(file: File | Blob, type: 'base64' | 'buffer' | 'text') {
  return new Promise<string | ArrayBuffer>((resolve, reject) => {
    const fr = new FileReader()
    fr.onload = () => {
      resolve(fr.result as string | ArrayBuffer)
    }
    fr.onerror = e => {
      reject(e)
    }
    if (type === 'base64') {
      fr.readAsDataURL(file)
    } else if (type === 'buffer') {
      fr.readAsArrayBuffer(file)
    } else if (type === 'text') {
      fr.readAsText(file)
    } else {
      reject(new Error('type is not Unrecognized'))
    }
  })
}

base64:
bytes:
[]
text: