我想通过fetch()
上传图片,我用的是formData
,上传成功,但一次只能上传一张图片。
handleGetNewPictureDragDrop = data => {
console.log(data);
const formData = new FormData();
for (let i = 0; i < data.length; i++) {
formData.append('filename', data[i]);
}
console.log(...formData);
const name = this.props.nameCategory;
fetch('http://api.../gallery/' + name, {
method: 'POST',
body: formData,
})
.then(response => response.json())
.then(success => console.log(success))
.catch(error => console.log(error));
}
控制台日志(数据):
控制台.log(...表单数据):
控制台日志(成功):
我采取3个图像,创建formData
,有3个图像,但后,这个formData
我得到上传只有一个。
3条答案
按热度按时间ffx8fchx1#
将多个文件追加到表单数据时,请使用唯一键。
bxfogqkk2#
我认为您正在为每个图像传递相同的“名称”以进行附加。语法应该是
字符串
第一个应该是字段名,如果不是唯一的,它将覆盖。
尝试使其动态化
或者其他名称(数据中唯一的)可能更好,只是不要为每个图像传递相同的名称。
e0bqpujr3#
我也遇到过类似的问题,但使用的是PHP后端。唯一的
formData
键可以工作,但我发现经典的HTML符号工作得很好,只会在服务器上产生一个数组。我更喜欢这样,因为我可以使用与经典的
<input type="file" multiple />
相同的方法来处理这个问题。