首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将文件引脚到Pinata,以及如何使用react js将json引脚到Pinata

如何将文件引脚到Pinata,以及如何使用react js将json引脚到Pinata
EN

Stack Overflow用户
提问于 2022-08-28 11:30:41
回答 1查看 30关注 0票数 0

我只是四处闲逛,想办法把文件钉在皮纳塔身上。

虽然我有一种方法可以从服务器端执行此操作,但不知道如何从客户端(如React.js)这样做:

这是服务器端方法

代码语言:javascript
复制
async function storeImages(imagesFilePath) {
  const fullImagesPath = path.resolve(imagesFilePath);
  const files = fs.readdirSync(fullImagesPath);
  let responses = [];
  console.log("Uploading to Pinata !!!");
  console.log("paths ", fs.createReadStream(fullImagesPath + "/" + files[0]));
  for (fileIndex in files) {
    const readableStreamForFile = fs.createReadStream(
      `${fullImagesPath}/${files[fileIndex]}`
    );
    try {
      const response = await pinata.pinFileToIPFS(readableStreamForFile);
      responses.push(response);
    } catch (error) {
      console.log(error);
    }
  }
  return { responses, files };
}
async function storeTokeUriMetadata(metadata) {
  try {
    const response = await pinata.pinJSONToIPFS(metadata);
    return response;
  } catch (error) {
    console.log(error);
  }
  return null;
}

皮纳塔主页:带有一些手动上传文件的Pinata主页

非常感谢你的帮助

EN

回答 1

Stack Overflow用户

发布于 2022-11-13 02:59:25

我写了这个组件很久以前,希望它仍然有帮助!:)

代码语言:javascript
复制
import { useState } from "react"
import axios from "axios" 

const FileUpload = () => {

  const [selectedFile, setSelectedFile] = useState();

  const changeHandler = (event) => {
    setSelectedFile(event.target.files[0]);
  };

  const handleSubmission = async() => {

    const formData = new FormData();
    
    formData.append('file', selectedFile)

    const metadata = JSON.stringify({
      name: 'File name',
    });
    formData.append('pinataMetadata', metadata);

    try{
      const res = await axios.post("https://api.pinata.cloud/pinning/pinFileToIPFS", formData, {
        maxBodyLength: "Infinity",
        headers: {
          'Content-Type': `multipart/form-data; boundary=${formData._boundary}`,
          Authorization: `Bearer PASTE_YOUR_JWT_HERE`,
        }
      });
      console.log(res.data);
    } catch (error) {
      console.log(error);
    }
  };

  return (
    <>
    <label class="form-label">Choose File</label>
    <input type="file"  onChange={changeHandler}/>
    <button onClick={handleSubmission}>Submit</button>
    </>
  )
}

export default FileUpload
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73518283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档