Rex*_*Pan 6 file-upload form-data fetch node.js
如何使用 Node.JS 内置的 FormData 上传文件fetch(不是node_fetch)?
FormData使用 NodeJS 内置文件上传文件fetch。我们将文件读取为Blobthenset或append对象FormData。最后我们将FormData对象作为请求的正文发送fetch。
要将文件读取为Blob,我们可以使用fs.openAsBlob(Node.JS ^19.8) 或读取文件fs.readFile并将Buffer其转换为Blob.
import { openAsBlob } from 'node:fs' // Node.JS ^19.8
import { readFile } from "node:fs/promises"
import { lookup } from "mime-types"
uploadFile("./path/to/file.ext").then(res => res.text()).then(console.info)
async function uploadFile(/** @type {string} */ filePath) {
const file = await openAsBlob(filePath); // or
const file = new Blob([await readFile(filePath)], { type: lookup(filePath) });
const formData = new FormData()
formData.set("file", file, "file_name.ext");
return fetch(`https://example.com/upload`, { method:"POST", body:formData, /* ... */ });
}Run Code Online (Sandbox Code Playgroud)