【发布时间】:2022-01-16 21:52:53
【问题描述】:
我正在尝试在文件对象中添加标签文本,但是当通过 express-fileupload 在 node.js 中上传时。它正在上传文件但标签丢失。
const [files, setFiles] = useState([]);
const imageLabelChanger = (index, e) => {
const value = e.target.value;
//insert label and value for specifix image by index
files[index].file.label = value;
setFiles(files);
};
const FD = new FormData();
const createProduct = (e) => {
e.preventDefault();
for (let i in files) {
FD.append("productImageArray", files[i].file);
}
dispatch(addProductImage(paramId, FD));
};
通过这段代码,我得到了文件对象
console.log(文件)
output: [
{
"id": 7,
valid: true,
"file": File{
label: "oxygen blue",
lastModified: 1642222607314,
lastModifiedDate: Sat Jan 15 2022 10:26:47 GMT+0530 (India Standard Time) {},
name: "galaxy-8.jpeg",
size: 8433,
type: "image/jpeg",
},
{
"id": 8,
valid: true,
"file": File{
lastModified: 1642222607314,
lastModifiedDate: Sat Jan 15 2022 10: 26: 47 GMT+0530(India Standard Time) {},
name: "galaxy-9.jpeg",
size: 9458,
type: "image/jpeg",
}
]
文件上传后我得到文件对象但没有得到我使用formData发送的实际文件对象,标签键和它的值丢失
console.log(req.files.productImages)
output: [
{
lastModified: 1642222607314,
lastModifiedDate: Sat Jan 15 2022 10:26:47 GMT+0530 (India Standard Time) {},
name: "galaxy-8.jpeg",
size: 8433,
type: "image/jpeg",
data:
Binary('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIfIiEmKzcvJik0KSEiMEExNDk7...', 0)
},
{
lastModified: 1642222607314,
lastModifiedDate: Sat Jan 15 2022 10: 26: 47 GMT+0530(India Standard Time) {},
name: "galaxy-9.jpeg",
size: 9458,
type: "image/jpeg",
data:
Binary('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIfIiEmKzcvJik0KSEiMEExNDk7...', 0)
}
]
请帮助我如何制作我认为这个问题与 req.files 相关的东西,它可能不需要任何额外的属性,所以如果有任何方法可以实现这一点。
提前谢谢
【问题讨论】:
标签: javascript node.js reactjs mongodb express-fileupload