javascript — отправка файла с выборкой, API-интерфейсом FormData и мультитером: изображение не загружается

Отправьте файл с помощью fetch, FormData API и multer: изображение не будет загружено

Я пытаюсь отправить некоторые FormData в тело выборки, чтобы загрузить изображение с Multer (nodeJS).

Я попытался установить заголовок "Content-Type": "multipart/form-data" для моего вызова извлечения, но когда я это делаю, у меня возникает ошибка nodeJS:

Ошибка: Multipart: граница не найдена

Затем я попытался удалить заголовок Content-Type , поэтому браузер установил его по умолчанию, и выборка не удалась, я даже не вхожу в мой маршрутизатор nodeJS.

Вот мой метод подготовки FormData:

 handleChange = event ={amp}gt; { if(event.target.type === 'file') { const files = event.target.files; var formData = new FormData(); for(var i = 0; i {amp}lt; files.length; i  ) { formData.append('images[]', files[i], files[i].name); } //UPLOAD IMAGE METHOD Image.upload(formData); } }; 

Вот мой призыв вызова:

 upload: async function(formData) { return fetch('http://localhost:8080/image/upload', { method: 'post', body: formData }) } 

а вот и мой контроллер:

 const express = require('express'); const router = express.Router(); const multer = require('multer'); const upload = multer({dest: __dirname   '/uploads/images'}); router.post('/upload', upload.array('images'), (req, res) ={amp}gt; { console.log('req.file', req.file, req.files, req.body); return res.sendStatus(200); }); module.exports = router; 

ранее маршрутизировался app.use('/image', require('./controllers/imageController')); таким образом, URL доступа — http: // localhost: 8080 / image / upload

заголовок ответа без Content-Type:

 Provisional headers are shown Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryi3lc9wCsnhrvAOAB Origin: http://localhost:3000 Referer: http://localhost:3000/backoffice/catalog/edit/5d976d6b50fd7f3d008d0f16 Sec-Fetch-Mode: cors User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36 images[]: (binary) 

ошибка с Content-Type:

Ошибка: Multipart: граница не найдена

Спасибо всем за ваши мозги :)

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector