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

时间:2020-01-15 22:36:05

标签: 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'));

但是我得到一个空的arrayBuffer

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

谢谢。

1 个答案:

答案 0 :(得分:3)

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

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
<input id="fileItem" type="file">