93 lines
3.0 KiB
JavaScript
93 lines
3.0 KiB
JavaScript
var fs = require('fs');
|
|
var multer = require('multer');
|
|
const path = require("path");
|
|
|
|
const BASE_UPLOAD_DIR = `/www/wwwroot/upload/`;
|
|
|
|
// try {
|
|
// if (!fs.existsSync(BASE_UPLOAD_DIR)) {
|
|
// fs.mkdirSync(BASE_UPLOAD_DIR, {recursive: true});
|
|
// console.log (`Created upload directory: ${BASE_UPLOAD_DIR}`);
|
|
// }
|
|
// } catch(err) {
|
|
// console.error(`Error creating directory ${BASE_UPLOAD_DIR}`)
|
|
// }
|
|
|
|
|
|
const storage = multer.diskStorage({
|
|
destination: (req, file, cb) => {
|
|
const { objectId, fileType, name, model } = req.query;
|
|
if (!objectId || !name || !fileType || !model) {
|
|
return res.status(400).send({message: 'Required fields missed'});
|
|
}
|
|
const uploadDir = `${BASE_UPLOAD_DIR}${model}/${objectId}/${fileType}/`;
|
|
if (!fs.existsSync(uploadDir)) {
|
|
fs.mkdirSync(uploadDir, {recursive: true});
|
|
console.log (`Created upload directory: ${uploadDir}/`);
|
|
}
|
|
cb(null, uploadDir);
|
|
},
|
|
filename: (req, file, cb) => {
|
|
const { objectId, fileType, name, date} = req.query;
|
|
const uniqueSuffix = date || Date.now();
|
|
const payload = req.body;
|
|
console.log('is the payload', payload);
|
|
cb(null, `${name.replaceAll(' ', '_')}_${objectId}_${fileType}_${uniqueSuffix}${path.extname(file.originalname)}`)
|
|
}
|
|
})
|
|
const uploadPhysicalFile = multer({
|
|
storage: storage,
|
|
limits: {fileSize: 10 * 1024* 1024},
|
|
fileFilter: (req, file, cb) => cb(null, true)
|
|
}).single('file');
|
|
|
|
// const memoryStorage = multer.memoryStorage();
|
|
|
|
// const upload = multer({
|
|
// storage: memoryStorage,
|
|
// limits: { fileSize: 10 * 1024* 1024}
|
|
// });
|
|
|
|
// const uploadPhysicalFile = (req, res, next) => {
|
|
// upload.single('file')(req, res, async (err) => {
|
|
// if (err) {
|
|
// return res.status(400).send({message: `Uplodad Error: ${err}`});
|
|
// }
|
|
|
|
// if (!req.file) {
|
|
// return res.status(400).send({message: 'No File uploaded'});
|
|
// }
|
|
|
|
// try {
|
|
// const {objectId, name, fileType} = req.body;
|
|
// if (!objectId || !name || fileType) {
|
|
// return res.status(400).send({message: 'Required fields missed'});
|
|
// }
|
|
// const uploadDir = `${BASE_UPLOAD_DIR}${objectId}/${fileType}/`;
|
|
// if (!fs.existsSync(uploadDir)) {
|
|
// fs.mkdirSync(uploadDir, {recursive: true});
|
|
// console.log (`Created upload directory: ${uploadDir}`);
|
|
// }
|
|
// const uniqueSuffix = Date.now();
|
|
// const fileExension = path.extname(req.file.originalname);
|
|
// const fileName = `${name.replaceAll(' ', '_')}_${objectId}_${fileType}_${uniqueSuffix}${fileExension}`;
|
|
// const filePath = path.join(uploadDir, fileName);
|
|
|
|
// fs.writeFileSync(filePath, req.file.buffer);
|
|
|
|
// req.fileInfo = {
|
|
// filename: fileName,
|
|
// path: filePath,
|
|
// originalname: req.file.originalname,
|
|
// size: req.file.size
|
|
// };
|
|
// next();
|
|
|
|
// } catch (err) {
|
|
// return res.status(500).send({message: `Upload Parsing error: ${err}`});
|
|
// }
|
|
// })
|
|
// }
|
|
|
|
|
|
module.exports = uploadPhysicalFile; |