-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathserver.js
80 lines (66 loc) · 2.29 KB
/
server.js
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
const express = require('express')
const app = express()
const http = require('http').createServer(app)
var fileUpload = require('express-fileupload');
const browser = require('browser-detect');
app.use(fileUpload());
const PORT = process.env.PORT || 3000
http.listen(PORT, () => {
console.log(`Listening on port ${PORT}`)
})
app.use(express.static(__dirname + '/public'));
// app.use(express.static(__dirname + '/public/files.html'));
app.get('/', (req, res) => {
res.sendFile(__dirname + '/index.html')
})
// Socket
const io = require('socket.io')(http)
io.on('connection', (socket) => {
console.log('Connected...')
socket.on('message', (msg) => {
socket.broadcast.emit('message', msg)
})
})
//*******UPLOAD FILE***************************************************** */
app.post('/upload', function(req, res) {
if (!req.files)
return res.status(400).send('No files were uploaded.');
let file = req.files.file;
let fileNumber = Math.floor((Math.random() * 10000) + 1);
let extension = file.name.split('.').pop();
file.mv('files/'+fileNumber+'.'+extension, function(err) {
if (err)
return res.status(500).send(err);
res.send(
{
'file':fileNumber+'.'+extension,
'extension' : extension,
'filename' : file.name,
'size' : file.data.length
});
});
});
//*******END UPLOAD FILE***************************************************** */
//************************************************************************** */
//*******DOWNLOAD FILE***************************************************** */
app.get('/file/:id', function(req, res) {
let files = 'files/';
let fs = require('fs');
var fullfile = '';
fs.readdir(files, (err, files) => {
files.forEach(file => {
let name = file.replace(/\.[^/.]+$/, "")
if(req.params.id == name) {
fullfile = __dirname +'/files/'+file;
let extension = file.split('.').pop();
let data = {
'file':file,
'browser' : browser(req.headers['user-agent'])
};
io.emit('upload file', data);
res.download(fullfile);
}
});
});
});
//*******END DOWNLOAD FILE***************************************************** */