React Axios:使用 FormData() 上传多张图片
React Axios: Upload Multiple Images using FormData()
我正在尝试将文件上传到后端。但它失败了
基本上我想同时上传11张图片
起初我是这样做的
const title, image1, image2, ... = this.state;
axios.post(`myapi`, {title, image1, image2})
这是我的图像 1 的状态:
它returns错误422"the given data was invalid"; "image_1": 图像字段是必需的。
网上看了好几遍,才知道上传和图片必须用formData。所以我尝试这样做
const title = this.state.title;
const formData = new FormData();
formData.append('image_1', this.state.image_1);
formData.append('image_2', this.state.image_2);
...
axios.post(`myapi`, {title, formData})
我仍然遇到相同的 422 错误,
尝试console.log formData
for (var fd of formData) {
console.log(fd);
}
结果表明 formData 已附加好。但不知何故我无法上传它,因为它是 "invalid data"
感谢您的帮助!
您正在将图像转换为 FormData,但将它们作为 JSON 发送。
您还应该在 formData 中包含标题。
const formData = new FormData();
formData.append('title', this.state.title);
formData.append('image_1', this.state.image_1);
formData.append('image_2', this.state.image_2);
并使用 header 将数据发送为 multipart/form-data
axios.post(`https://api.cashless.vip/api/homepage`, formData, {headers: {"Content-type": "multipart/form-data"}});
希望这有效。
添加 header {"Content-type": "multipart/form-data"}
我正在尝试将文件上传到后端。但它失败了
基本上我想同时上传11张图片
起初我是这样做的
const title, image1, image2, ... = this.state;
axios.post(`myapi`, {title, image1, image2})
这是我的图像 1 的状态:
它returns错误422"the given data was invalid"; "image_1": 图像字段是必需的。
网上看了好几遍,才知道上传和图片必须用formData。所以我尝试这样做
const title = this.state.title;
const formData = new FormData();
formData.append('image_1', this.state.image_1);
formData.append('image_2', this.state.image_2);
...
axios.post(`myapi`, {title, formData})
我仍然遇到相同的 422 错误,
尝试console.log formData
for (var fd of formData) {
console.log(fd);
}
结果表明 formData 已附加好。但不知何故我无法上传它,因为它是 "invalid data"
感谢您的帮助!
您正在将图像转换为 FormData,但将它们作为 JSON 发送。 您还应该在 formData 中包含标题。
const formData = new FormData();
formData.append('title', this.state.title);
formData.append('image_1', this.state.image_1);
formData.append('image_2', this.state.image_2);
并使用 header 将数据发送为 multipart/form-data
axios.post(`https://api.cashless.vip/api/homepage`, formData, {headers: {"Content-type": "multipart/form-data"}});
希望这有效。
添加 header {"Content-type": "multipart/form-data"}