I can upload one file, but I can't seem to upload multiple, it gets stuck on the first file.
Client
async function uploadFiles() {
let formData = new FormData();
formData.append("recordUid", recordUid);
formData.append("fieldUid", fieldUid);
[...pendingUploadFiles].forEach((file) => {
formData.append("uploaded_files", file);
});
await fetchPostFiles("/api/files", formData);
}
Server
const busboy = require("busboy");
const path = require("path");
const fs = require("fs");
router.post("/api/files", async (req, res, next) => {
try {
let bb = busboy({
headers: req.headers,
limits: {
fileSize: 10 * 1024 * 1024, // 10 mb
},
});
bb.on("file", (fieldname, file, filename, encoding, mimetype) => {
let parts = filename.filename.split(".");
let name = parts[0];
let extension = parts[parts.length - 1]; // without the . from .jpeg
let finalName = `${name}-${+new Date()}.${extension}`;
let saveTo = `${filesFolderPath}${finalName}`;
// Open writeable stream to path
let writeStream = fs.createWriteStream(saveTo);
// Pipe the file to the opened stream
file.pipe(writeStream);
// Check for errors
writeStream.on("error", (err) => {
console.log(err);
});
});
bb.on("finish", function () {
console.log("uploaded");
});
return req.pipe(bb);
});