1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
const express = require("express");
const formidable = require('formidable');
const fs = require("fs").promises
const app = express();
app.use(express.static('static'))
app.use(express.json());
const PORT = process.env.PORT || 8000;
const uploadDir = __dirname + "/static/upload"
app.get('/', () => {
})
app.post('/upload', (req, res, next) => {
const form = formidable({ multiples: true, uploadDir, keepExtensions: true });
form.parse(req, (err, fields, files) => {
if (err) {
next(err);
return;
}
res.send("ok");
console.log({ fields, files });
});
});
// getPathFromName
const gpfn = name => uploadDir + "/" + name
app.post('/delete-files', async (req, res) => {
for (const n of req.body.names) {
await fs.unlink(gpfn(n))
}
res.send("ok")
})
app.post('/rename-file', async (req, res) => {
let { nn, on } = req.body
if (!nn.includes('.')) nn += '.' + on.split('.').pop()
await fs.rename(gpfn(on), gpfn(nn))
res.send("ok")
})
app.get('/files', async (_, res) => {
res.json(await fs.readdir(__dirname + '/static/upload'))
});
app.listen(PORT, () => {
console.log("Server listening on port " + PORT);
})
|