From 9df62d037d373e06ae8cb228f71cdc43cc47fa00 Mon Sep 17 00:00:00 2001 From: TobiZog Date: Thu, 5 Dec 2024 12:29:05 +0100 Subject: [PATCH] Bugfix file manager --- backend/routes/files.routes.ts | 39 +++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/backend/routes/files.routes.ts b/backend/routes/files.routes.ts index 8651b6a..8e2053c 100644 --- a/backend/routes/files.routes.ts +++ b/backend/routes/files.routes.ts @@ -3,6 +3,7 @@ import fs, { createReadStream } from "fs" import multer from "multer" const upload = multer({ dest: './backend/images/' }) import licenses from "../data/licenses.json" +import path from 'path' export const files = Router() @@ -10,13 +11,13 @@ export const files = Router() * Get all folders */ files.get("/folders", async (req: Request, res: Response) => { - let dirNames = fs.readdirSync("./backend/images") + let dirNames = fs.readdirSync(path.resolve(__dirname, "../images")) let result = [] dirNames.forEach(dir => { result.push({ name: dir, - nrOfItems: fs.readdirSync("./backend/images/" + dir).length + nrOfItems: fs.readdirSync(path.resolve(__dirname, "../images/" + dir)).length }) }) @@ -31,26 +32,30 @@ files.get("/folders", async (req: Request, res: Response) => { */ files.get("/:folder", async (req: Request, res: Response) => { let result = [] - let fileNames = fs.readdirSync("./backend/images/" + req.params.folder + "/") + let fileNames = fs.readdirSync(path.resolve(__dirname, "../images/" + req.params.folder)) - fileNames.forEach(file => { - let resData = "" - let url = "http://localhost:3000/static/" + req.params.folder + "/" + file + try { + fileNames.forEach(file => { + let resData = "" + let url = "http://localhost:3000/static/" + req.params.folder + "/" + file - if (file.endsWith("html") || file.endsWith("js")) { - resData = fs.readFileSync("./backend/images/" + req.params.folder + "/" + file, "utf8") - } + if (file.endsWith("html") || file.endsWith("js")) { + resData = fs.readFileSync(path.resolve(__dirname, "../images/" + req.params.folder + "/" + file), "utf8") + } - result.push({ - name: file, - size: fs.statSync("./backend/images/" + req.params.folder + "/" + file).size, - content: resData, - url: url, - copyright: licenses.find(data => data.image == file) + result.push({ + name: file, + size: fs.statSync(path.resolve(__dirname, "../images/" + req.params.folder + "/" + file)).size, + content: resData, + url: url, + copyright: licenses.find(data => data.image == file) + }) }) - }) - res.status(200).json(result) + res.status(200).json(result) + } catch (error) { + res.status(400).json(error) + } })