【发布时间】:2021-02-04 23:25:09
【问题描述】:
我正在尝试将文件发送到下一个 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]) 在前端给了我下面的值,看起来不错。
在api中,
export default (upload.single('postPic'), async (req, res) => {
console.log(req.body)
上面是我使用时的undefined
export const config = {
api: {
bodyParser: false,
},
};
当我删除 bodyParser 设置(bodyParser 为 true)时,数据会以流的形式出现,对上传没有用处。我收到如下所示的上传错误:
如果正文以以下格式到达 api,Cloudinary 将上传:
应该进行哪些更改才能使正文(基本上是一个图像文件)以正确的格式到达 api,如上所示?
我认为这个问题也可以问为:为什么使用bodyParser: false时req.body undefined?
【问题讨论】:
-
您的 API 在哪里实现(Next.js 的 API 路由或其他项目/框架)?
-
@nghiaht 它在 nextjs api 路由中。谢谢