summaryrefslogtreecommitdiffstats
path: root/server.js
diff options
context:
space:
mode:
authorMaksymilian Jopek <maks@jopek.eu>2021-11-02 23:18:46 +0100
committerMaksymilian Jopek <maks@jopek.eu>2021-11-02 23:41:18 +0100
commit9cff90d8ed3880670c9ff49dbe2a993b5aeb3132 (patch)
tree779baff2cad04f2aa5e302605717f8613be43e2a /server.js
downloadbars-manager-9cff90d8ed3880670c9ff49dbe2a993b5aeb3132.tar.gz
bars-manager-9cff90d8ed3880670c9ff49dbe2a993b5aeb3132.tar.zst
bars-manager-9cff90d8ed3880670c9ff49dbe2a993b5aeb3132.zip
v1.0.0
Diffstat (limited to 'server.js')
-rw-r--r--server.js85
1 files changed, 85 insertions, 0 deletions
diff --git a/server.js b/server.js
new file mode 100644
index 0000000..a03e7b6
--- /dev/null
+++ b/server.js
@@ -0,0 +1,85 @@
+const express = require("express");
+const app = express();
+const formidable = require('formidable');
+const path = require("path");
+const hbs = require('express-handlebars');
+const PORT = 8000;
+let FILES = []
+let ID = 1;
+
+app.set('views', path.join(__dirname, 'views'));
+app.engine('hbs', hbs({ defaultLayout: 'main.hbs' }));
+app.set('view engine', 'hbs');
+app.use(express.static("static"));
+app.use(express.urlencoded({
+ extended: true
+}));
+
+app.get("/upload", (req, res) => {
+ res.render('upload.hbs', {});
+})
+app.post("/upload", (req, res) => {
+ let form = formidable({});
+ form.uploadDir = __dirname + '/static/upload/'
+ form.keepExtensions = true
+ form.multiples = true
+ form.parse(req, (_, fields, files) => {
+ console.log(files)
+ if (Array.isArray(files.upl)) {
+ for (const f of files.upl) {
+ const file = {}
+ file.id = ID++;
+ file.img = getFileImg(f.type)
+ file.name = f.name;
+ file.size = f.size
+ file.type = f.type
+ file.path = f.path
+ file.date = f.lastModifiedDate.getTime()
+ FILES.push(file)
+ }
+ } else {
+ const file = {}
+ file.id = ID++;
+ file.img = getFileImg(files.upl.type)
+ file.name = files.upl.name;
+ file.size = files.upl.size
+ file.type = files.upl.type
+ file.path = files.upl.path
+ file.date = files.upl.lastModifiedDate.getTime()
+ FILES.push(file)
+ }
+ res.redirect("/upload")
+ });
+})
+app.get("/filemanager", (req, res) => {
+ res.render('filemanager.hbs', { FILES });
+})
+app.get("/delete", (req, res) => {
+ FILES = FILES.filter(f => f.id != req.query.id)
+ res.redirect("/filemanager")
+})
+app.get("/remove-all", (req, res) => {
+ FILES = [];
+ res.redirect("/filemanager")
+})
+app.get("/info", (req, res) => {
+ res.render('info.hbs', FILES.find(f => f.id == req.query.id));
+})
+app.get("/download", (req, res) => {
+ res.sendFile(FILES.find(f => f.id == req.query.id).path)
+})
+
+function getFileImg(type) {
+ if (type.includes("json"))
+ return "/json.svg";
+ if (type.includes("text"))
+ return "/text.svg";
+ if (type.includes("image"))
+ return "/image.svg";
+
+ return "/default.svg"
+}
+
+app.listen(PORT, () => {
+ console.log("Server listening on port " + PORT);
+})