Реагировать на загрузку нескольких файлов - PullRequest
0 голосов
/ 14 октября 2019

Я пытаюсь загрузить несколько изображений с аксиосами в React, но я не могу понять, что не так. Сначала я попытался загрузить одно изображение, и это прекрасно работает. Но с несколькими изображениями у меня нет выбора.

Я создаю данные формы следующим образом:

for (let i = 0; i < images.length; i++) {
    formData.append('productPhotos[' + i + ']', images[i]);
}

Запрос axios выглядит следующим образом

    const config = { headers: { 'Content-Type': 'multipart/form-data' } };

    axios
        .post(endPoints.createProduct, formData, config)
        .then(res => console.log(res))
        .catch(err => console.log(err));

Myback-end написан как узел / экспресс, и я использую multer для загрузки. Подпись выглядит так:

app.post("/product", upload.array("productPhotos"), (req, res) => {

Я пробовал эту конечную точку в PostMan, и загрузка работает просто отлично, поэтому ошибка должна быть на входе. Спасибо за помощь.

ОБНОВЛЕНИЕ Правильный способ передачи нескольких файлов в formData:

images.forEach(img => {
    formData.append("productPhotos", img)
})

1 Ответ

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

Это неправильный способ генерации ключей. Вы можете попробовать что-то вроде этого:

let productimages = [];

for (let i = 0; i < images.length; i++) {
    productimages.push(images[i]);
}
formData.append('productPhotos', images);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...