首页 > 解决方案 > HTML5 File 对象中的文件数据或位置在哪里?

问题描述

我正在创建一个组件来上传文件,例如:

<input onchange={handleFileUpload} />
function handleFileUpload(event) {
    const file = event.target.files[0];
    const reader = new FileReader();
    reader.onload = ev => uploadMyFile(ev.target.result):
    reader.readAsText(file);
}

event.target.files[0]返回一个File对象,该对象具有名称、类型和大小等基本信息。但是,在控制台中检查实例并阅读有关文件和 Blob 的 MDN 文档后,我不明白我filereader.

具体来说,一个File对象似乎不包含“文件路径”或“数据”属性;在我看来,它似乎只包括描述文件元信息的属性,而不包括它在本地文件系统中的位置,或某种形式的实际数据。

那么aFileReader现在哪里可以找到要读取的文件呢?

标签: javascripthtml

解决方案


FileReaderFile对象不是用 JavaScript 编写的。它们通过 API 向 JavaScript 公开某些数据。

FileReader需要通过File对象读取文件时,它通过不暴露给 JS 的 API(它们是可能用 C 编写的内部 API)来完成。

您无法在 JavaScript 级别访问该数据,因为它没有在此处公开(因为根本不需要它,或者因为网站能够访问该数据会带来安全风险)。


推荐阅读