如何从输入类型文件元素中获取实际文件?

时间:2017-07-19 22:44:15

标签: reactjs input socket.io

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

var file = e.target.value;

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

帮助?你会推荐哪些套餐?

1 个答案:

答案 0 :(得分:0)

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

有代码示例:

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

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

  reader.readAsText(file);
});`

对不起我的英文!)