上传多个文件失败
Fail to upload multiple files
我尝试使用 multer 上传多个文件。
这是前端代码:
const onFileUpload = () => {
// Create an object of formData
const formData = new FormData();
// Update the formData object
formData.append(
"myFiles",
selectedFiles,
);
// Details of the uploaded file
console.log(selectedFiles);
// Request made to the backend api
// Send formData object
axios.post("api/uploadfile", formData);
}
后台代码如下:
const storage = multer.diskStorage({});
const uploadFile = async (req, res) => {
console.log("uploadFile: ",req.files)
return res.status(200).send("alive");
};
router.post(
'/uploadfile',
multer({storage}).array('myFiles'),
uploadFile,
);
问题是当我 consol.log req.files
我重新接收空数组但我应该重新接收文件数组。
我做错了什么
你用错了。
改为:
const onFileUpload = () => {
// Create an object of formData
const formData = new FormData();
for (const key of Object.keys(selectedFiles)) {
formData.append("myFiles", selectedFiles[key])
}
// Details of the uploaded file
console.log(selectedFiles);
// Request made to the backend api
// Send formData object
axios.post("api/uploadfile", formData);
}
我尝试使用 multer 上传多个文件。 这是前端代码:
const onFileUpload = () => {
// Create an object of formData
const formData = new FormData();
// Update the formData object
formData.append(
"myFiles",
selectedFiles,
);
// Details of the uploaded file
console.log(selectedFiles);
// Request made to the backend api
// Send formData object
axios.post("api/uploadfile", formData);
}
后台代码如下:
const storage = multer.diskStorage({});
const uploadFile = async (req, res) => {
console.log("uploadFile: ",req.files)
return res.status(200).send("alive");
};
router.post(
'/uploadfile',
multer({storage}).array('myFiles'),
uploadFile,
);
问题是当我 consol.log req.files
我重新接收空数组但我应该重新接收文件数组。
我做错了什么
你用错了。
改为:
const onFileUpload = () => {
// Create an object of formData
const formData = new FormData();
for (const key of Object.keys(selectedFiles)) {
formData.append("myFiles", selectedFiles[key])
}
// Details of the uploaded file
console.log(selectedFiles);
// Request made to the backend api
// Send formData object
axios.post("api/uploadfile", formData);
}