Я не уверен, что этот вопрос уже задавался (думаю, я видел несколько, но ответы мне не очень помогли), но я хочу загрузить изображение, а затем отправить его с помощью Axios Post.
У меня есть этот код, который, как мне кажется, основан на ответах, которые я видел на аналогичный вопрос:
import FormData = require('form-data');
import axios from 'axios';
const requestId = 'sample_requestID';
const imageType = 'multipart/form-data';
const reqHeaders = { 'Content-Type': imageType, 'request-id': requestId };
let formdata = new FormData();
formdata.append('file', photo.filename);
axios({
url: 'http://localhost:3003/upload/image',
method: 'POST',
headers: reqHeaders,
data: formdata
}).then((res) => {
//do stuff here
}, (err) => {
//do stuff here
});
Однако я получаю сообщение об ошибке API, что я отправляю неправильные данные или, возможно, формат. Я пробовал это на Postman, и он работает. Я также подтвердил, что это могло быть связано с данными, которые я пытаюсь отправить, когда я создал фиктивные данные, чтобы увидеть, получу ли я то же сообщение об ошибке в Postman, что и я.
Я попытался отладить данные формы после добавления, и я получил это.
_streams: [
'----------------------------145109778770561058481382\r\n' +
'Content-Disposition: form-data; name = "file"\r\n' +
'\r\n',
'location\\of\\the\\image817daf4d-ac83-4d12-b804-b9bb7152dc91.png',
[Function: bound ]
],
Максимальные данные: 'maxDataSize: 2097152', что я не уверен, связано ли это с чем-либо, но согласно проверке размер изображения составляет 2,8 МБ.
Файл изображения поступает из:
photo: {
fieldname: 'file',
originalname: 'image.png',
encoding: '7bit',
mimetype: 'image/png',
destination: './location/of/the/',
filename: 'image817daf4d-ac83-4d12-b804-b9bb7152dc91.png',
path: 'location\\of\\the\\image817daf4d-ac83-4d12-b804-b9bb7152dc91.png',
size: 2978745
}





Взгляните на эту тему: stackoverflow.com/questions/43013858/…