gpt4 book ai didi

reactjs - 如何使用 formdata 将图像文件发送到 React/Next js api?

转载 作者:行者123 更新时间:2023-12-04 14:10:54 26 4
gpt4 key购买 nike

我正在尝试在下一个 js 应用程序中将文件发送到 api。图像将上传到 cloudinary:
函数调用api是:

  async uploadButtonClicked(imageUpload) {
const formData = new FormData();
//formData.append('test', "testing");
formData.append('postPic', imageUpload.files[0]);
const res = await fetch('/api/hello', {
method: 'POST',
headers: {
'Content-Type': 'multipart/form-data',
'Accept': 'application/json'
},
body: formData,
})
console.log(imageUpload.files[0])在前端给了我下面的值,看起来不错。
enter image description here
在 API 中,
export default (upload.single('postPic'), async (req, res) => {
console.log(req.body)
以上是 undefined当我使用
export const config = {
api: {
bodyParser: false,
},
};
当我删除 bodyParser 设置(bodyParser 为 true)时,数据是一个对上传没有用的流。我收到上传错误,如下所示:
enter image description here
如果正文以以下格式到达 api,Cloudinary 将上传:
enter image description here
应该更改什么才能使主体(基本上是一个图像文件)以正确的格式到达 api,如上所示?
我觉得这个问题也可以问:为什么 req.body undefined使用时 bodyParser: false ?

最佳答案

我遇到了同样的错误,但 Formidable 对我有用。首先尝试将图像放入表单数据中。
来自客户:

export const uploadImage = async (image) => {

const formData = new FormData();
formData.append('image', image);
const response = await axios.post('/api/v1/image', formData);
return response.data;
}
以下是服务器 API:/api/v1/image
import formidable from 'formidable';


export const config = {
api: {
bodyParser: false,
},
}

export default async (req, res) => {
const form = new formidable.IncomingForm();
form.uploadDir = "./";
form.keepExtensions = true;
form.parse(req, (err, fields, files) => {
console.log(err, fields, files);
});
};

关于reactjs - 如何使用 formdata 将图像文件发送到 React/Next js api?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64473863/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com