Imgur上传api错误总是返回400与multer和form-data nodejs



我正在使用react and上传图片。以下是我对上传请求的快速处理:

router.post('/upload-image', upload.any(), async function(req, res, next) {
const file = req.files[0];
const form = new FormData();
form.append('image', file.buffer);
form.append('type', 'file');
const imgurInstance = new imgur({
refreshToken: user.imgurRefreshToken,
clientId: IMGUR_CLIENT_ID,
clientSecret: IMGUR_CLIENT_SECRET
});
await imgurInstance.getAccessToken();
const response = await imgurInstance.uploadImage(form);
const data = await response.json();
});

这是要求。Files [0] console logged:

{
fieldname: 'file',
originalname: 'headscratch.jpeg',
encoding: '7bit',
mimetype: 'image/jpeg',
buffer: <Buffer ff d8 ff e0 00 10 4a 46 49 46 00 01 01 01 00 01 00 01 00 00 ff e1 00 42 45 78 69 66 00 00 4d 4d 00 2a 00 00 00 08 00 01 87 69 00 04 00 00 00 01 00 00 ... 13803 more bytes>,
size: 13853
}

这是我的uploadImage函数使用node-fetch

uploadImage (form){
const path = `/3/upload`;
const headers = {
'Authorization': `Bearer ${this.accessToken}`,
...form.getHeaders()
};
const options = {
method: 'POST',
body: form,
headers
};
return fetch(`${this.BASE_API_URL}${path}`, options);
}

我总是从imgur获得400分,他们不提供任何细节。

{
status: 400,
success: false,
data: { error: 'Bad Request', request: '/3/upload', method: 'POST' }
}

我尝试过使用base64,只是使用表单数据上传url,我仍然得到400个错误。有人能告诉我怎样才能成功地打这个电话吗?谢谢。

我想我需要了解表单数据实际上在做什么。显然,表单数据不会作为文件发送,除非你将文件名与{filename: "}作为选项

form.append('image', file.buffer, {filename: file.originalname});

imgur终于接受了我的请求,瞧!

相关内容

  • 没有找到相关文章

最新更新