从相对路径读取文件作为 ArrayBuffer

aau*_*tho 5 javascript filereader arraybuffer

我正在尝试使用 FileReader API 将本地文件读入 ArrayBuffer,如下所示

let reader = new FileReader();

reader.onload = function(e) {
    let arrayBuffer = new Uint8Array(reader.result);
    console.log(arrayBuffer);
}

reader.readAsArrayBuffer(new File([], 'data.txt'));
Run Code Online (Sandbox Code Playgroud)

但我得到一个空的 arrayBuffer

如何在浏览器中将此本地文件作为 ArrayBuffer 读取?

谢谢。

Blu*_*r86 6

您无法通过浏览器按路径名读取文件。您需要让用户与文件系统交互并选择一个文件,然后才能读取内容。

const readFile = e => {
  const file = e.target.files[0]
  let reader = new FileReader();

  reader.onload = function(e) {
      let arrayBuffer = new Uint8Array(reader.result);
      console.log(arrayBuffer);
  }

  reader.readAsArrayBuffer(file);
}

document.querySelector("#fileItem").onchange=readFile
Run Code Online (Sandbox Code Playgroud)
<input id="fileItem" type="file">
Run Code Online (Sandbox Code Playgroud)