在前端,我正在为每个订单生成唯一的ID。方法是重命名用户上传到orderId的文件。以下是我对服务器的请求:
const handleFileUpload = e => {
const formData = new FormData()
formData.append("pdf-file", e.target.files[0])
formData.append("orderId", orderId)
axios.post("http://localhost:8000/upload", formData, { headers: { "Content-Type": "multipart/form-data" } })
.then(res => {
console.log(res)
})
.catch(error => {
console.log(error)
})
}以下是服务器代码:
const storage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null, "./uploads")
},
filename: (req, file, cb) => {
console.log(req.body)
cb(null, `${file.fieldname}-${req.body.orderId}`)
}
})
const uploadStorage = multer({storage: storage})
app.post("/upload", uploadStorage.single("pdf-file"), (req, res) => {
console.log(req.body)
return res.send("file upload")
})console.log(req.body)在filename中显示空对象,在app.post()中显示orderId。以下是它的外观:
[Object: null prototype] {} // inside filename
[Object: null prototype] { orderId: 'e923920b-fdf0-41ab-97dd-2fcf20b57250' } // inside app.post()因此,就我所理解的文件名而言,无法做到这一点。如何处理这种情况?这有可能吗?
发布于 2022-01-31 13:57:30
我所要做的就是改变我附加到formData的订单。
现在起作用了:
formData.append("orderId", orderId)
formData.append("pdf-file", e.target.files[0])https://stackoverflow.com/questions/70871859
复制相似问题