【问题标题】:How do I get the actual file from an Input type file element?如何从输入类型文件元素中获取实际文件?
【发布时间】:2017-07-19 22:44:15
【问题描述】:

var file = e.target.files[0];

var 文件 = e.target.value;

我正在使用 React 和 Socket io 尝试通过聊天发送图像。我所能得到的只是文件路径而不是实际文件。我从未处理过文件输入,所以我试图弄清楚如何获取该文件并将其转换为我可以通过套接字 io 发送的二进制字符串。

帮助?有什么推荐的包吗?

【问题讨论】:

标签: reactjs input socket.io


【解决方案1】:

您需要从输入中获取文件,例如您可以在 onChange 事件上触发处理程序。在此之后,您必须将文件从输入(e.target.file[0] 或循环,如果文件很多)到FileReader 并从文件中提取 blob。接下来你可以通过socket发送提取的blob,如果blob太大你可以将它分割成块。

有代码示例:

const readBlob = file => new Promise((resolve, reject) => {
  const reader = new FileReader();

  reader.onload = e => {
    resolve(e.target.result);
  };

  reader.readAsText(file);
});

对不起我的英语!)

【讨论】:

  • 对我有很大帮助的有用答案 :) 但您可能想要链接到英文文档而不是俄文文档!
  • @user1339253 很好。我已经编辑了链接。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-02-16
  • 2014-05-06
  • 2017-07-17
  • 2015-04-09
  • 1970-01-01
  • 1970-01-01
  • 2013-02-16
相关资源
最近更新 更多