使用 FileReader 在 JavaScript 中读取本地文件

发布于 2022-09-04 11:34:51 字数 1842 浏览 149 评论 0

JavaScript 的 FileReader 是一个类,它使您能够从浏览器中运行的 JavaScript 读取用户机器上的文件。 FileReader 通常用于从一个读取数据 <input type="file">

例如假设您的页面上有一个带有 id 的文件输入 select-file,这是打印当前所选文件内容的方法。

const file = document.querySelector('#select-file').files[0];
const reader = new FileReader();

reader.onload = res => {
  console.log(res.target.result); // Print file contents
};
reader.onerror = err => console.log(err);

reader.readAsText(file);

下面是一个实时示例,每次您选择不同的文件时都会将文件内容打印到控制台。 在 Linux/Windows 上单击 Ctrl+Shift+J 或在 OSX 上单击 Cmd+J 打开 Chrome 控制台并尝试一下!

FileReader 在现代浏览器以及 IE10 中得到很好的支持,注意 FileReader 是一个浏览器 API,虽然大多数浏览器都支持它, FileReader不是 Node.js 的 一部分。

使用 Promise 和 Async/Await

FileReader 类的 async API 不适合与 async/await promise chaining 。 这是你如何包装一个 FileReader 在链式承诺中:

function readFile(file) {
  return new Promise((resolve, reject) => {
    const reader = new FileReader();

    reader.onload = res => {
      resolve(res.target.result);
    };
    reader.onerror = err => reject(err);

    reader.readAsText(file);
  });
}

有了以上 readFile() 助手,您可以在异步函数中读取文件:

async function onSubmit() {
  const file = document.querySelector('#select-file').files[0];

  const contents = await readFile(file);
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

永言不败

暂无简介

0 文章
0 评论
24 人气
更多

推荐作者

一梦浮鱼

文章 0 评论 0

mb_Z9jVigFL

文章 0 评论 0

伴随着你

文章 0 评论 0

耳钉梦

文章 0 评论 0

18618447101

文章 0 评论 0

蜗牛

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文