이것은 여러 파일을 업로드하는 내 멀터 코드입니다.
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, './public/files/'+ req.user.id)
},
filename: function (req, file, cb) {
x = file.originalname; //+path.extname(file.originalname);
cb(null,x);
}
});
var upload = multer({storage: storage});
제출을 클릭하면 파일이 제출되는 게시 요청입니다.
router.post(upload.array("FileUpload",12), function(req, res, next) {
//Here accessing the body datas.
})
그래서 제가 원하는 것은 생성 된 folder
이름으로 첫 번째 파일 을 만들고에서 ID
액세스 할 수 req.body
있는 파일을 해당 폴더에 각각 업로드하는 것입니다. 그러나 body
업로드 전에 첫 번째에 액세스 할 수 없기 때문에 각각을 만들 수 없습니다. folder directory.
이것을 생각하고 구현할 수있는 다른 방법이 있습니까?
fs-extra 패키지를 사용하여 솔루션을 업데이트했습니다.
const multer = require('multer');
let fs = require('fs-extra');
var storage = multer.diskStorage({
destination: function (req, file, cb) {
let Id = req.body.id;
fs.mkdirsSync('./public/files/'+ req.user.id + '/' + Id);
cb(null, './public/files/'+ req.user.id + '/' + Id)
},
filename: function (req, file, cb) {
x = file.originalname; //+path.extname(file.originalname);
cb(null,x);
}
});
var upload = multer({storage: storage});
제출을 클릭하면 파일이 제출되는 게시 요청입니다.
router.post(upload.array("FileUpload",12), function(req, res, next) {
//Here accessing the body datas.
})
먼저 설치해야 fs-extra
폴더를 만들 것입니다
같은 멀터를위한 별도의 폴더 생성 multerHelper.js
const multer = require('multer');
let fs = require('fs-extra');
let storage = multer.diskStorage({
destination: function (req, file, cb) {
let Id = req.body.id;
let path = `tmp/daily_gasoline_report/${Id}`;
fs.mkdirsSync(path);
cb(null, path);
},
filename: function (req, file, cb) {
// console.log(file);
let extArray = file.mimetype.split("/");
let extension = extArray[extArray.length - 1];
cb(null, file.fieldname + '-' + Date.now() + "." + extension);
}
})
let upload = multer({ storage: storage });
let createUserImage = upload.array('images', 100);
let multerHelper = {
createUserImage,
}
module.exports = multerHelper;
경로에서 multerhelper 파일 가져 오기
const multerHelper = require("../helpers/multer_helper");
router.post(multerHelper , function(req, res, next) {
//Here accessing the body datas.
})
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다