Javascript 如何使用react js正确读取所有文件类型并在浏览器中添加到IPFS

Javascript 如何使用react js正确读取所有文件类型并在浏览器中添加到IPFS,javascript,node.js,reactjs,Javascript,Node.js,Reactjs,我试图读取一个文件,它可以是任何像视频,图像,文本与反应。 我想通过节点JS在IPFS中添加数据。在正常情况下,这意味着当我只使用js编写时,我会这样做: const data = await fs.readFile(file_path) console.log(data) const filesAdded = await nodeDialer.add({ path:file_path, content:data, }) console.log(filesAdded) 这些文件

我试图读取一个文件,它可以是任何像视频,图像,文本与反应。 我想通过节点JS在IPFS中添加数据。在正常情况下,这意味着当我只使用js编写时,我会这样做:

const data = await fs.readFile(file_path)
console.log(data)
const filesAdded = await nodeDialer.add({
    path:file_path,
    content:data,
})
console.log(filesAdded)
这些文件将被添加到任何类型的文件中

我尝试了fs,发现它只在节点端有效,而在反应端无效。 无论我在哪里看到,他们都在为.txt文件或.csv文件使用readastext函数

所以我找不到合适的解决方案。

我用以下方法解决了这个问题:

已为文件上载创建事件处理程序:

  captureFile(event){
    const file = event.target.files[0]
    this.setState({ file_path : file})
    console.log('--------------', this.state.file_path)
    const reader = new window.FileReader()
    reader.readAsArrayBuffer(file)
    reader.onloadend = () => {
      this.setState({ buffer: Buffer(reader.result) })
      console.log('buffer --- ', this.state.buffer)
      console.log('path --- ', this.state.file_path.name)
    }
  }

然后,我将文件添加到IPFS中,其中包含:

    const filesAdded =  await node.add({
      path: this.state.file_path.name ,
      content:this.state.buffer
    })

嗯。节点的和可能的?@rayhatfield,AFAIK,将只在节点环境中运行,即服务器端。阿披舍克,你能用更好的细节更新你的问题吗?到目前为止,您尝试了什么,遇到了什么问题,发布了代码,您的预期结果应该是什么。“尽量说得具体一点。”他在点头中明确地说。如果是在浏览器中,则使用-假设用户将在文件输入中选择文件,然后使用与浏览器兼容的。我同意这个问题需要澄清。@rayhatfield谢谢。只是要求澄清。目前还不清楚OP是试图在node中运行代码,还是仅仅使用node来运行react的本地开发服务器,因为react是一个前端框架。也许他们正在做服务器端渲染SSR,我们不知道。现在请看答案@rayhatfield