Мне нужно опубликовать массив изображений и одно изображение для предварительного просмотра продукта. Здесь мои настройки мультера
const multer = require('multer');
// Multer settings
const storage = multer.diskStorage({
destination: function(req, file, cb) {
cb(null, './uploads/');
},
filename: function(req, file, cb) {
cb(null, file.originalname);
}
});
const fileFilter = (req, file, cb) => {
// reject a file
if (file.mimetype === 'image/jpeg' || file.mimetype === 'image/png') {
cb(null, true);
} else {
cb(null, false);
}
};
const upload = multer({
storage: storage,
fileFilter: fileFilter
});
const multerSettings = upload.fields([{ name: 'thumb', maxCount: 1 }, { name: 'images', maxCount: 8 }]);
module.exports = multerSettings;
Моя модель для размещения данных. Я использую MongoDB
thumb: {
url: String
},
images: [{url: String}]
Клиентская часть
const fd = new FormData();
const { images, thumb } = state.details;
fd.append('thumb', thumb);
fd.append('images', images);
await this.$axios.post('/product', fd);
Изображения представляют собой массив файлов [File, File, File], и по какой-то причине req.files ['images' ] на сервере не определено, но thumb работает правильно. И когда я посылаю те же данные через почтальона, все работает как положено. В браузере в предпросмотре заголовка я вижу следующие данные
thumb: (binary)
images: [{},{},{}]
Может быть, изображения должны быть массивом двоичных данных? И при отправке одного файла, подобного этому
fd.append('images', images[0]);
req.files ['images'], он работает правильно. Мне нужно как-то изменить мой массив на клиенте. Я понятия не имею, что мне делать.
Буду благодарен за любые советы