MACHIN
This commit is contained in:
66
2/app.js
Normal file
66
2/app.js
Normal file
@@ -0,0 +1,66 @@
|
||||
const express = require("express");
|
||||
const multer = require("multer");
|
||||
const ejs = require("ejs");
|
||||
const path = require("path");
|
||||
|
||||
const storage = multer.diskStorage({
|
||||
destination: "./public/uploads/",
|
||||
filename: function(req, file, callback) {
|
||||
callback(
|
||||
null,
|
||||
file.fieldname + "-" + Date.now() + path.extname(file.originalname)
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
const upload = multer({
|
||||
storage,
|
||||
limits: { fileSize: 1000000 },
|
||||
fileFilter: function(req, file, cb) {
|
||||
checkFileType(file, cb);
|
||||
}
|
||||
}).single("myImage");
|
||||
|
||||
function checkFileType(file, cb) {
|
||||
const filetypes = /jpeg|jpg|png|svg/;
|
||||
const extname = filetypes.test(path.extname(file.originalname).toLowerCase());
|
||||
const mimetype = filetypes.test(file.mimetype);
|
||||
|
||||
if (mimetype && extname) {
|
||||
return cb(null, true);
|
||||
} else {
|
||||
cb(new Error(`Только изображения формата - png, jpg, jpeg`));
|
||||
}
|
||||
}
|
||||
|
||||
const app = express();
|
||||
const port = 3000 || process.env.PATH;
|
||||
|
||||
app.set("view engine", "ejs");
|
||||
|
||||
app.use(express.static("./public"));
|
||||
|
||||
app.get("/", (req, res) => {
|
||||
res.render("index");
|
||||
});
|
||||
|
||||
app.post("/upload", (req, res) => {
|
||||
upload(req, res, err => {
|
||||
if (err) {
|
||||
res.render("index", { msg: err.message });
|
||||
} else {
|
||||
if (req.file == undefined) {
|
||||
res.render("index", { msg: "Пожалуйста, выберите файл для загрузки" });
|
||||
} else {
|
||||
res.render("index", {
|
||||
msg: "Файл обновлён!",
|
||||
file: `uploads/${req.file.filename}`
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
app.listen(port, () => {
|
||||
console.log(`Старт сайта ${port}`);
|
||||
});
|
||||
Reference in New Issue
Block a user