port = 8000; // Require the libraries: var SocketIOFileUpload = require('socketio-file-upload'), socketio = require('socket.io'), express = require('express'); const app = express() .use(SocketIOFileUpload.router) .use(express.static(__dirname + "/public")); const http = require('http'); const server = http.createServer(app); const { Server } = require("socket.io"); const io = new Server(server); // Make your Express server: app.get('/', (req, res) => { res.sendFile(__dirname + "/forms/select.html"); }) app.get('/upload', (req, res) => { res.sendFile(__dirname + "/forms/upload.html"); }) app.get('/download', (req, res) => { res.sendFile(__dirname + "/forms/download.html"); }) app.get('/download/:hash', (req, res) => { mac = req.params.hash; res.send("sdadsd"); }) app.get('/upload', (req, res) => { // parsedUrl = req.socket.handshake.headers.referer.split(req.socket.handshake.headers.host, 2); // console.log(parsedUrl[0]); // console.log(parsedUrl[1]); // Make an instance of SocketIOFileUpload and listen on this socket: res.send("upload"); }) // Start up Socket.IO: // var io = new socketio.Server(app.listen(port)); io.sockets.on("connection", function(socket){ if(socket.handshake.url.startsWith("/socket.io")) { var uploader = new SocketIOFileUpload(); uploader.dir = "uploads"; uploader.uploadValidator = function(event, callback){ // asynchronous operations allowed here; when done, console.log(event); if (false) { callback(true); } else { callback(false); } }; uploader.listen(socket); // Do something when a file is saved: uploader.on("saved", function(event){ console.log(event.file); }); // Error handler: uploader.on("error", function(event){ console.log("Error from uploader", event); }); } }); app.use(function (req, res, next) { res.status(404); console.log(req.query); ans = { error: 'Not found', code: 404 } if (req.query.format == "xml"){ res.set('Content-Type', 'text/xml'); res.send(xml({xml: ans})); } else if (req.query.format == "csv") { res.send(ans.error); } else if (req.query.format == "json") { res.json(ans); } // respond with html page if (req.accepts('html') && !req.url.startsWith("/api")) { res.send('

404 Not found

'); return; } // respond with json if (req.accepts('json')) { res.json({ error: 'Not found', code: 404 }); return; } // default to plain-text. send() res.send('404'); }); server.listen(port, () => { console.log('listening on *:8000'); }); // https://stackoverflow.com/questions/1349404/generate-random-string-characters-in-javascript function makeid(length) { let result = ''; const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; const charactersLength = characters.length; let counter = 0; while (counter < length) { result += characters.charAt(Math.floor(Math.random() * charactersLength)); counter += 1; } return result; } // const express = require('express'); // const app = express() // const server = require('http').createServer(app); // var siofu = require("socketio-file-upload"); // const port = process.env.PORT || 8080; // const io = require('socket.io')(server); // const fs = require("fs") // app.use(express.static("public")); // io.on("connection", (socket) => { // console.log("req") // var uploader = new siofu(); // uploader.dir = "./uploads"; // uploader.listen(socket); // }); // app.listen(8000, () => { // console.log(`Server started...`); // }); // server.listen(port, function() { // console.log(`Listening on port ${port}`); // }); // const express = require('express'); // const app = express(); // const fs = require("fs") // const s = require("socket.io"); // const io = new s.Server(); // io.on("connection", (socket) => { // socket.on("upload", (file, callback) => { // console.log(file); // // // save the content to the disk, for example // fs.writeFile("./tmp/upload", file, (err) => { // callback({ message: err ? "failure" : "success" }); // }); // }); // }); // // const multer = require("multer"); // // const date = Date.now(); // // const storage = multer.diskStorage({ // // destination: function (req, file, cb) { // // if(req.body.name == "test"){ // // storage.error("Already Exists"); // // } // // const nameFolder = date + "-" +req.body.name; // // const dirRep = nameFolder.replace(/\s/g, ''); // // const folderPath = "lessons/"+dirRep+"/"; // // fs.mkdirSync(folderPath, {recursive: true}) // // cb(null, folderPath) // // }, // // filename: function (req, file, cb) { // // const filename = Date.now() + "-" + file.originalname; // // const rep = filename.replace(/\s/g, '') // // cb(null, rep) // // }, // // }); // // const upload = multer({ // // storage: storage, // // limits: { // // fileSize: 50000000000 // // } // // }); // app.use(express.urlencoded({ extended: true })); // app.use(express.static('public')); // app.get('/download/:hash', (req, res) => { // }) // // app.post("/upload", upload.array("files"), uploadFiles); // // function uploadFiles(req, res) { // // console.log(req.body); // // console.log(req.files); // // res.json({ message: "Successfully uploaded files" }); // // } // function checkPerm(req, res) { // if(req.body.name == "kuba"){ // throw("Invalid name") // }else { // return req, res // } // } // app.use(function (req, res, next) { // res.status(404); // console.log(req.query); // ans = { error: 'Not found', code: 404 } // if (req.query.format == "xml"){ // res.set('Content-Type', 'text/xml'); // res.send(xml({xml: ans})); // } else if (req.query.format == "csv") { // res.send(ans.error); // } else if (req.query.format == "json") { // res.json(ans); // } // // respond with html page // if (req.accepts('html') && !req.url.startsWith("/api")) { // res.send('

404 Not found

'); // return; // } // // respond with json // if (req.accepts('json')) { // res.json({ error: 'Not found', code: 404 }); // return; // } // // default to plain-text. send() // res.send('404'); // }); // app.listen(5000, () => { // console.log(`Server started...`); // });