Я пытаюсь загрузить несколько файлов, используя данные формы. В серверной части (узел с express) я пытаюсь получить доступ к именам полей Dynami c для загрузки файлов, используя formidable .
- route: '/ photos / upload-test' работает без проблем.
- route: '/ photos / upload' не работает, так как я пытаюсь получить форму поля динамически.
Есть ли проблемы в коде маршрута '/ photos / upload'? Пожалуйста, помогите мне.
var express = require('express')
var multer = require('multer')
const formidable = require('formidable')
var app = express()
let fs = require('fs-extra');
let upload = multer({
storage: multer.diskStorage({
destination: (req, file, callback) => {
let path = `uploads/`;
fs.mkdirsSync(path);
callback(null, path);
},
filename: (req, file, callback) => {
//originalname is the uploaded file's name with extn
console.log(file.originalname)
callback(null, file.originalname);
}
})
});
upload_multiple = (req, res, next) => {
let f_names = [];
new formidable.IncomingForm().parse(req)
.on('file', (name, file) => {
f_names.push({ name: name });
})
.on('end', () => {
req.photoNames = [];
req.photoName = f_names;
next()
});
}
upload_data = (req, res, next) => {
console.log(req.photoName);
upload.fields(req.photoName)
}
var cpUpload = upload.fields([{ name: 'photos_1' }, { name: 'photos_2' }])
app.post('/photos/upload-test',
cpUpload,
function (req, res, next) {
res.send({ files: req.files, body: req.body })
}
);
app.post('/photos/upload',
upload_multiple,
upload_data,
function (req, res, next) {
console.log("Yes" + req.photoName)
res.send({ files: req.files, body: req.body })
}
);
app.listen(5555);