Axios загрузить JPG в формате данных формы, данные ответа: {ошибка: 'Multipart: Граница не найдена'} - PullRequest
0 голосов
/ 14 октября 2019

Я хочу загрузить JPG по ссылке с Axios, но не удалось. Я сомневаюсь, что что-то не так с моими данными формы, я не знаю, как это проверить. Я делаю это следующим образом:

let form = new FormData();
form.append('screenshot',fs.createReadStream(`xxx.jpg`));

скриншот - это ключ, а следующий - jpg, который я хочу опубликовать. Вот мой метод публикации:

const config = { headers: { 'Content-Type': 'multipart/form-data' } };
yield axios.post(url,form,config).then....catch....

Я успешно загрузил jpg через почтальона: enter image description here

Как я могу сделать то же самое с NodeJS в VScode?
Сообщение об ошибке очень длинное, но главное. должны быть данные ответа: {error: 'Multipart: Граница не найдена'}.

Вот некоторые данные сервера:

const upload = multer({
//dest: 'screenshots',
limits: {
    fileSize: 2000000 //number in bytes
},
fileFilter(req, file, cb) {
    if (!file.originalname.match(/\.(png|jpg|jpeg)$/)) {
        return cb(new Error('File must be of png/jpg/jpeg type.'))
    }
    cb(undefined, true)
}

router.post('/upload/:id/screenshot', findCasebyID, upload.single('screenshot'), async (req, res) => {
try {
        req.case.screenshot = req.file.buffer
        await req.case.save()
        res.send()
} catch (e) {
    res.status(409).send(e)
}...

1 Ответ

0 голосов
/ 14 октября 2019

Мне удалось решить это с помощью:

const config = { headers: { 'Content-Type': `multipart/form-data; boundary=${form._boundary}`, } };
...