Files
eventmaster/software/backend/routes/files.routes.ts

52 lines
1.2 KiB
TypeScript

import { Request, Response, NextFunction, Router } from 'express'
import fs from "fs"
import multer from "multer"
const upload = multer({ dest: './backend/images/' })
export const files = Router()
/**
* Get all folders
*/
files.get("/folders", async (req: Request, res: Response) => {
let dirNames = fs.readdirSync("./backend/images")
let result = []
dirNames.forEach(dir => {
result.push({
name: dir,
nrOfItems: fs.readdirSync("./backend/images/" + dir).length
})
})
res.status(200).json(result)
})
/**
* Get all uploaded file names by file name
*/
files.get("/:folder", async (req: Request, res: Response) => {
let result = []
let fileNames = fs.readdirSync("./backend/images/" + req.params.folder + "/")
fileNames.forEach(file => {
result.push({
name: file,
size: fs.statSync("./backend/images/" + req.params.folder + "/" + file).size,
url: "http://localhost:3000/static/" + req.params.folder + "/" + file
})
})
res.status(200).json(result)
})
/**
* Upload a file
*/
files.post("/", upload.single("file"), function (req: Request, res: Response, next: NextFunction) {
console.log(req.file)
res.status(200).send()
})