Bugfix file manager

This commit is contained in:
2024-12-05 12:29:05 +01:00
parent 8a18b95031
commit a58adbcc8d

View File

@@ -3,6 +3,7 @@ import fs, { createReadStream } from "fs"
import multer from "multer" import multer from "multer"
const upload = multer({ dest: './backend/images/' }) const upload = multer({ dest: './backend/images/' })
import licenses from "../data/licenses.json" import licenses from "../data/licenses.json"
import path from 'path'
export const files = Router() export const files = Router()
@@ -10,13 +11,13 @@ export const files = Router()
* Get all folders * Get all folders
*/ */
files.get("/folders", async (req: Request, res: Response) => { files.get("/folders", async (req: Request, res: Response) => {
let dirNames = fs.readdirSync("./backend/images") let dirNames = fs.readdirSync(path.resolve(__dirname, "../images"))
let result = [] let result = []
dirNames.forEach(dir => { dirNames.forEach(dir => {
result.push({ result.push({
name: dir, name: dir,
nrOfItems: fs.readdirSync("./backend/images/" + dir).length nrOfItems: fs.readdirSync(path.resolve(__dirname, "../images/" + dir)).length
}) })
}) })
@@ -31,19 +32,20 @@ files.get("/folders", async (req: Request, res: Response) => {
*/ */
files.get("/:folder", async (req: Request, res: Response) => { files.get("/:folder", async (req: Request, res: Response) => {
let result = [] let result = []
let fileNames = fs.readdirSync("./backend/images/" + req.params.folder + "/") let fileNames = fs.readdirSync(path.resolve(__dirname, "../images/" + req.params.folder))
try {
fileNames.forEach(file => { fileNames.forEach(file => {
let resData = "" let resData = ""
let url = "http://localhost:3000/static/" + req.params.folder + "/" + file let url = "http://localhost:3000/static/" + req.params.folder + "/" + file
if (file.endsWith("html") || file.endsWith("js")) { if (file.endsWith("html") || file.endsWith("js")) {
resData = fs.readFileSync("./backend/images/" + req.params.folder + "/" + file, "utf8") resData = fs.readFileSync(path.resolve(__dirname, "../images/" + req.params.folder + "/" + file), "utf8")
} }
result.push({ result.push({
name: file, name: file,
size: fs.statSync("./backend/images/" + req.params.folder + "/" + file).size, size: fs.statSync(path.resolve(__dirname, "../images/" + req.params.folder + "/" + file)).size,
content: resData, content: resData,
url: url, url: url,
copyright: licenses.find(data => data.image == file) copyright: licenses.find(data => data.image == file)
@@ -51,6 +53,9 @@ files.get("/:folder", async (req: Request, res: Response) => {
}) })
res.status(200).json(result) res.status(200).json(result)
} catch (error) {
res.status(400).json(error)
}
}) })