Files
LAB5/IMAGE/app.js
example 3e1c549cbc XD
2023-11-09 21:58:08 +03:00

56 lines
1.3 KiB
JavaScript

const express = require('express');
const multer = require('multer');
const path = require('path');
const fs = require('fs');
const app = express();
const port = 3000;
app.use(express.static('public'));
const storage = multer.diskStorage({
destination: (request, file, callBack) => {
callBack(null, 'public/uploads/');
},
filename: (request, file, callBack) => {
const name = path.extname(file.originalname);
const direction = 'public/uploads/';
let count = 0;
while (fs.existsSync(`${direction}${count}${name}`)) {
count++;
}
callBack(null, `${count}${name}`);
},
});
const upload = multer({
storage: storage,
limits: {
fileSize: 10 * 1024 * 1024
},
fileFilter: (request, file, callBack) => {
const allowedFileExtensions = ['.jpg', '.jpeg', '.png', '.svg'];
const name = path.extname(file.originalname).toLowerCase();
if (allowedFileExtensions.includes(name)) {
return callBack(null, true);
}
else {
return callBack('ERROR');
}
},
});
app.post('/upload', upload.single('image'), (request, response) => {
response.send('SUCCESSFULLY!');
});
app.listen(port, () => {
console.log(`SERVER STARTED ON POR ${port}`);
});