worldshine-redesign/app/middlewares/upload_physical.js
2025-06-08 18:34:14 -04:00

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;