56 lines
1.3 KiB
JavaScript
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}`);
|
|
}); |