mirror of
https://git.sr.ht/~coasteen/webui
synced 2025-11-04 11:37:34 +01:00
fix server.js
This commit is contained in:
parent
31a8a77f60
commit
d76af466f1
1 changed files with 65 additions and 57 deletions
|
|
@ -5,6 +5,7 @@ const fs = require('fs');
|
||||||
|
|
||||||
const app = express();
|
const app = express();
|
||||||
|
|
||||||
|
// configure storage for uploaded files
|
||||||
const storage = multer.diskStorage({
|
const storage = multer.diskStorage({
|
||||||
destination: (req, file, cb) => {
|
destination: (req, file, cb) => {
|
||||||
cb(null, 'uploads/');
|
cb(null, 'uploads/');
|
||||||
|
|
@ -17,8 +18,10 @@ const storage = multer.diskStorage({
|
||||||
|
|
||||||
const upload = multer({ storage: storage });
|
const upload = multer({ storage: storage });
|
||||||
|
|
||||||
|
// serve static files
|
||||||
app.use(express.static(__dirname));
|
app.use(express.static(__dirname));
|
||||||
|
|
||||||
|
// upload files
|
||||||
app.post('/upload', upload.array('files'), (req, res) => {
|
app.post('/upload', upload.array('files'), (req, res) => {
|
||||||
if (!req.files || req.files.length === 0) {
|
if (!req.files || req.files.length === 0) {
|
||||||
return res.status(400).send('No files were uploaded.');
|
return res.status(400).send('No files were uploaded.');
|
||||||
|
|
@ -26,6 +29,7 @@ app.post('/upload', upload.array('files'), (req, res) => {
|
||||||
res.send(`Successfully uploaded ${req.files.length} file(s)!`);
|
res.send(`Successfully uploaded ${req.files.length} file(s)!`);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// get list of uploaded files
|
||||||
app.get('/files', (req, res) => {
|
app.get('/files', (req, res) => {
|
||||||
const directoryPath = path.join(__dirname, 'uploads');
|
const directoryPath = path.join(__dirname, 'uploads');
|
||||||
fs.readdir(directoryPath, (err, files) => {
|
fs.readdir(directoryPath, (err, files) => {
|
||||||
|
|
@ -55,6 +59,7 @@ app.get('/files', (req, res) => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// serve a specific file
|
||||||
app.get('/uploads/:filename', (req, res) => {
|
app.get('/uploads/:filename', (req, res) => {
|
||||||
const filePath = path.join(__dirname, 'uploads', req.params.filename);
|
const filePath = path.join(__dirname, 'uploads', req.params.filename);
|
||||||
res.sendFile(filePath, err => {
|
res.sendFile(filePath, err => {
|
||||||
|
|
@ -64,6 +69,7 @@ app.get('/uploads/:filename', (req, res) => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// download a specific file
|
||||||
app.get('/download/:filename', (req, res) => {
|
app.get('/download/:filename', (req, res) => {
|
||||||
const filePath = path.join(__dirname, 'uploads', req.params.filename);
|
const filePath = path.join(__dirname, 'uploads', req.params.filename);
|
||||||
res.download(filePath, err => {
|
res.download(filePath, err => {
|
||||||
|
|
@ -73,6 +79,7 @@ app.get('/download/:filename', (req, res) => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// delete a specific file
|
||||||
app.delete('/delete/:filename', (req, res) => {
|
app.delete('/delete/:filename', (req, res) => {
|
||||||
const filePath = path.join(__dirname, 'uploads', req.params.filename);
|
const filePath = path.join(__dirname, 'uploads', req.params.filename);
|
||||||
fs.unlink(filePath, err => {
|
fs.unlink(filePath, err => {
|
||||||
|
|
@ -83,6 +90,7 @@ app.delete('/delete/:filename', (req, res) => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// start the server
|
||||||
app.listen(3000, () => {
|
app.listen(3000, () => {
|
||||||
console.log('Server is running on http://localhost:3000');
|
console.log('Server is running on http://localhost:3000');
|
||||||
});
|
});
|
||||||
Loading…
Add table
Reference in a new issue