ipfs - 如何将文件从浏览器发送到远程 IPFS 网关

标签 ipfs

我有一个调用 _getFile 函数的输入字段

<input type="file" class="file" on-change="_getFile"/>

获取文件
_getFile(event) {
  this.loading = true;
  const file = event.target.files[0];
  let reader = new window.FileReader()
  reader.onloadend = () => this._saveToIpfs(reader)
  reader.readAsArrayBuffer(file)
 }
}

一旦我们有了一个数组缓冲区,我们就调用...
_saveToIpfs(data){

}

这是我需要帮助的,我想将选定的文件发送到' https://ipfs.infura.io:5001/api/v0/add ' 或 ' https://ipfs.io/api/v0/add ' 怎么做?是xhr帖子吗?我希望得到一个 IPFS 哈希值

下面的简单表单似乎上传文件,然后与错误 ERR_CONTENT_LENGTH_MISMATCH 断开连接
<form action="https://ipfs.io/api/v0/add/" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload Image" name="submit">
</form>

我aso尝试了经典的XHR
_getFile(event) {
const file = event.target.files[0];
var data = new FormData();
data.append('path', event.target.files[0]);
var request = new XMLHttpRequest();
request.onreadystatechange = function(){
    if(request.readyState == 4){
        console.log(request.response)
    }
};
request.open('POST', 'https://ipfs.io/api/v0/add');
request.send(data);
}

再次 ERR_CONTENT_LENGTH_MISMATCH

最佳答案

您可以使用官方js-ipfs-api图书馆。然后你可以使用 ipfs.files.add 函数来发布您的文件,因为您已经在数组缓冲区中拥有它。如果这不起作用,则 js-ipfs-api 具有您可以使用的内置 Buffer 对象。

关于ipfs - 如何将文件从浏览器发送到远程 IPFS 网关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44971622/

相关文章:

ethereum - 如何将IPFS链接转换为JSON?

reactjs - 导入 nft.storage 时无法解析 ipfs-car/blockstore/memory

distributed-computing - IPFS 和超驱动器之间有什么区别?

linux - 外部用户调用将无法运行 IPFS 调用

javascript - 类型错误 : IPFS is not a constructor

javascript - 无法从 ipfs.util.addFromFS 收集回调响应

ipfs - 如何在浏览器中记录 IPFS/libp2p 中的对等消息?

ipfs - 如何在ipfs中创建文件夹并上传图片

json - Superagent:错误:解析器无法解析响应