-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathzubercloud.js
More file actions
116 lines (95 loc) · 3.02 KB
/
zubercloud.js
File metadata and controls
116 lines (95 loc) · 3.02 KB
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
var express = require('express');
var sharedSession = require('express-socket.io-session');
var app = express();
var files = [];
// config the server
var config = require('./app/config/config');
// set up middleware
var session = require('./app/config/express')(app, config);
// set up the mongodb connection
var db = require('./app/config/mongoose')(config);
// set up passport authentication and middleware
require('./app/config/passport')();
// set up routes
require('./app/config/routes')(app);
// set up the server to listen
var server = app.listen(config.port, function() {
console.log("Listening on port " + config.port + ".");
});
// set up socket.io to listen to connections
var io = require('socket.io').listen(server);
//io.use(sharedSession(session));
var path = require('path');
var fs = require('fs');
var imagePath = path.normalize(__dirname + '/public/img/movies/');
var videoPath = path.normalize(__dirname + '/app/videos/');
var tempImgPath = path.normalize(__dirname + '/app/temp/img/movies/');
io.on('connection', function(socket) {
//console.log("Listening for new sockets.");
socket.on('test', function(data) {
console.log(data);
});
socket.on('startUploadMovieImg', function(data) {
var name = data['name'];
files[name] = {
fileSize: data['size'],
data: "",
downloaded: 0
};
var place = 0;
try{
var stat = fs.statSync(tempImgPath);
if(stat.isFile()) {
files[name]['downloaded'] = stat.size;
place = (stat.size / 524288);
}
}
catch(err){}
fs.open(tempImgPath + name, "a", 0755, function(err, fd) {
if(err) {
console.log(err);
}
else {
files[name]['handler'] = fd;
socket.emit('uploadMovieImgMore', {
'name': name,
'place': place,
'percent': 0
});
}
})
});
socket.on('uploadMovieImg', function(data) {
var name = data['name'];
files[name]['downloaded'] += data['data'].length;
files[name]['data'] += data['data'];
if(files[name]['downloaded'] === files[name]['fileSize']) {
fs.write(files[name]['handler'], files[name]['data'], null, 'Binary', function(err, written) {
socket.emit('uploadMovieImgDone', {
'name': name
});
});
}
else if(files[name]['data'].length > 10485760) {
fs.write(files[name]['handler'], files[name]['data'], null, 'Binary', function(err, written) {
files[name]['data'] = "";
var place = (files[name]['downloaded'] / 524288);
var percent = ((files[name]['downloaded'] / files[name]['fileSize']) * 100);
socket.emit('uploadMovieImgMore', {
'name': name,
'place': place,
'percent': percent
});
});
}
else {
var place = (files[name]['downloaded'] / 524288);
var percent = ((files[name]['downloaded'] / files[name]['fileSize']) * 100);
socket.emit('uploadMovieImgMore', {
'name': name,
'place': place,
'percent': percent
});
}
});
});