Jasper Tan
Jasper Tan

Reputation: 61

Next JS data fetching with file body

I am trying to send a POST request to upload a file to my IPFS server. However I am unsure how can I upload a file into the body of the request. I have tried looking at the examples from Fetch API, but their example shows files uploaded from a form. While in my case, the files are already within my directory.

Update: I have revised my code for sending a POST request to my IPFS server based on the documentation on Fetch API and I am now able to successfully send a request. However I am still stuck on how can I get the "fileInput" variable to reference a file from my directory. The current example only works if I have a html form.

I have tried nodejs fs library but I ran into issues where some of the functions are not available. It appears that using fs may pose certain security concerns from what I read. Would appreciate if I can have some advice on this.

  var formdata = new FormData();
  const fileInput = document.querySelector('input[type="file"]');
  formdata.append(
    "file",
    fileInput.files[0],
    `../../ipfs_files/${item._id}.png`
  );

  var requestOptions = {
    method: "POST",
    body: formdata,
    redirect: "follow",
  };

  fetch("http://localhost:5001/api/v0/add", requestOptions)
    .then((response) => response.text())
    .then((result) => console.log(result))
    .catch((error) => console.log("error", error));

Upvotes: 0

Views: 2078

Answers (1)

Tanishk
Tanishk

Reputation: 168

you can also send data as base64 string and store it into the database then while accessing convert back to the original format.

Upvotes: 0

Related Questions