Skip to content
Snippets Groups Projects
Commit 77d0ef05 authored by nicolas.paschoud's avatar nicolas.paschoud
Browse files
parents 680daf45 1398729d
No related branches found
No related tags found
No related merge requests found
......@@ -26,7 +26,6 @@ CREATE TABLE IF NOT EXISTS Files (
paths varchar(400) NOT NULL,
lat FLOAT,
lng FLOAT,
addedon INT,
PRIMARY KEY (file_id),
FOREIGN KEY (paths) REFERENCES Paths(paths),
FOREIGN KEY (login) REFERENCES Users(login)
......@@ -66,13 +65,13 @@ VALUES
INSERT INTO Files
VALUES
("abcd", "un", 'a', "/a", 46.2054, 6.1459, 1576691707),
("ab", "deux", 'a', "/a", 46.2054, 6.1459, 1576691707),
("@dfsg", "trois", 'c', "/c/test", 46.2054, 6.1459, 1576691707),
("gbvaf", "quatre", 'b', "/b", 46.2054, 6.1459, 1576691707),
("dsfgh", "cinq", 'd', "/d", 46.2054, 6.1459, 1576691707),
("sdfa", "six.txt", 'e', "/e", 46.2054, 6.1459, 1576691707),
("liblb", "myfile.txt", 'noe', "/n", 46.2054, 6.1459, 1576691707);
("abcd", "un", 'a', "/a", 46.2054, 6.1459),
("ab", "deux", 'a', "/a", 46.2054, 6.1459),
("@dfsg", "trois", 'c', "/c/test", 46.2054, 6.1459),
("gbvaf", "quatre", 'b', "/b", 46.2054, 6.1459),
("dsfgh", "cinq", 'd', "/d", 46.2054, 6.1459),
("sdfa", "six.txt", 'e', "/e", 46.2054, 6.1459),
("liblb", "myfile.txt", 'noe', "/n", 46.2054, 6.1459);
INSERT INTO Shares
VALUES
......
......@@ -34,6 +34,11 @@
<div id="content-drive">
</div>
<form action="/upload/n" method="POST" encType="multipart/form-data">
Choose a file :<br>
<input type="file" name="my_file"><br>
<input type="submit" value="Send">
</form>
</div>
<div id="info">
<h3>Infos</h3>
......
"use strict";
const CryptoJS = require("crypto-js");
const http = require("http");
var fileupload = require("express-fileupload");
var multer = require('multer')
var storage = multer.diskStorage(
{
destination: './files/',
filename: function ( req, file, cb ) {
cb( null, Math.round(Math.random()*100) + Date.now().toString() );
}
}
);
var upload = multer( { storage: storage } );
const express = require('express');
const app = express();
......@@ -260,15 +274,41 @@ app.get('/share/:file_id/:to_user', (req, res) => {
/**
* Request to upload a file
*/
app.get('/upload/', (req, res) => {
let d = new Date();
let date_upload = d.getTime();
// "abcd", "un", "/a", 46.2054, 6.1459, date_upload
http.get('http://bot.whatismyipaddress.com', (res) => {
res.setEncoding('utf8');
res.on('data', function(chunk){
console.log(chunk);
// app.get('/upload/', (req, res) => {
// let d = new Date();
// let date_upload = d.getTime();
// // "abcd", "un", "/a", 46.2054, 6.1459, date_upload
// res.send(`Request for an upload (${req.query['file']})`)
// });
app.post('/upload*', upload.single('my_file'), (req, res) => {
// res.send(`Request for an upload (${req.query['file']})`)
let token = req.query["token"]
let user = verify_token(token)
if (user){
let path = req.params['0']
if (req.file){
var file_id = Math.round(Math.random() * 100) + Date.now();
var file_name = "test"
let lat;
let lon;
http.get('http://bot.whatismyipaddress.com', (result) => {
result.setEncoding('utf8');
result.on('data', function(chunk){
let ip = chunk;
http.get('http://ip-api.com/json/' + ip, (resp) => {
let data = '';
......@@ -277,18 +317,33 @@ app.get('/upload/', (req, res) => {
});
resp.on('end', () => {
console.log(JSON.parse(data));
lat = JSON.parse(data).lat.toFixed(3);
lon = JSON.parse(data).lon.toFixed(3);
// add to BDD
sql.addFile(file_id, file_name, user, path, lat, lon, (result) => {
res.send(result)
})
});
});
});
});
}
else{
console.log("Please enter a file");
}
}
else{
res.send("Please be connected")
}
res.send(`Request for an upload (${req.query['file']})`)
});
})
app.get('/download/:file_id', (req, res) => {
let token = req.query["token"]
let file_id = req.params["file_id"]
let user = verify_token(token);
if (user){
......@@ -388,4 +443,6 @@ app.get('/show-shared-file', (req, res) => {
});
app.use(express.static('front'));
app.use(fileupload());
var upload = multer({ dest: "files/" })
app.listen(port, () => console.log(`Hyperdrive listening on port ${port}!`))
......@@ -13,6 +13,11 @@
"negotiator": "0.6.2"
}
},
"append-field": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz",
"integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY="
},
"array-flatten": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
......@@ -40,11 +45,35 @@
"type-is": "~1.6.17"
}
},
"buffer-from": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
"integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
},
"busboy": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz",
"integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==",
"requires": {
"dicer": "0.3.0"
}
},
"bytes": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
"integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
},
"concat-stream": {
"version": "1.6.2",
"resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
"integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
"requires": {
"buffer-from": "^1.0.0",
"inherits": "^2.0.3",
"readable-stream": "^2.2.2",
"typedarray": "^0.0.6"
}
},
"content-disposition": {
"version": "0.5.3",
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
......@@ -96,6 +125,14 @@
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
},
"dicer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz",
"integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==",
"requires": {
"streamsearch": "0.1.2"
}
},
"ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
......@@ -153,6 +190,14 @@
"vary": "~1.1.2"
}
},
"express-fileupload": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/express-fileupload/-/express-fileupload-1.1.6.tgz",
"integrity": "sha512-w24zPWT8DkoIxSVkbxYPo9hkTiLpCQQzNsLRTCnecBhfbYv+IkIC5uLw2MIUAxBZ+7UMmXPjGxlhzUXo4RcbZw==",
"requires": {
"busboy": "^0.3.1"
}
},
"finalhandler": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
......@@ -245,11 +290,80 @@
"mime-db": "1.42.0"
}
},
"minimist": {
"version": "0.0.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
},
"mkdirp": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
"requires": {
"minimist": "0.0.8"
}
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"multer": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/multer/-/multer-1.4.2.tgz",
"integrity": "sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg==",
"requires": {
"append-field": "^1.0.0",
"busboy": "^0.2.11",
"concat-stream": "^1.5.2",
"mkdirp": "^0.5.1",
"object-assign": "^4.1.1",
"on-finished": "^2.3.0",
"type-is": "^1.6.4",
"xtend": "^4.0.0"
},
"dependencies": {
"busboy": {
"version": "0.2.14",
"resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz",
"integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=",
"requires": {
"dicer": "0.2.5",
"readable-stream": "1.1.x"
}
},
"dicer": {
"version": "0.2.5",
"resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz",
"integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=",
"requires": {
"readable-stream": "1.1.x",
"streamsearch": "0.1.2"
}
},
"isarray": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
},
"readable-stream": {
"version": "1.1.14",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
"integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
"requires": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.1",
"isarray": "0.0.1",
"string_decoder": "~0.10.x"
}
},
"string_decoder": {
"version": "0.10.31",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
}
}
},
"mysql": {
"version": "2.17.1",
"resolved": "https://registry.npmjs.org/mysql/-/mysql-2.17.1.tgz",
......@@ -266,6 +380,11 @@
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
"integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
},
"object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
},
"on-finished": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
......@@ -396,6 +515,11 @@
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
"integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
},
"streamsearch": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz",
"integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo="
},
"string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
......@@ -418,6 +542,11 @@
"mime-types": "~2.1.24"
}
},
"typedarray": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
},
"unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
......@@ -437,6 +566,11 @@
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
"integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
},
"xtend": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
"integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
}
}
}
......@@ -11,6 +11,8 @@
"dependencies": {
"crypto-js": "^3.1.9-1",
"express": "^4.17.1",
"express-fileupload": "^1.1.6",
"multer": "^1.4.2",
"mysql": "^2.17.1"
}
}
......@@ -250,6 +250,44 @@ function getSharedFile(user, callback){
});
}
function addFile(file_id, file_name, login, paths, lat, lon, callback){
var q = `
SELECT COUNT(paths)
FROM Paths
WHERE paths = '${paths}'
AND login = '${login}'
`;
con.query(q, (err, resp) => {
if (err) {
console.log(err);
return callback(false, err);
}
if (resp[0]["COUNT(paths)"] > 0){
var q = `
INSERT INTO Files
VALUES ('${file_id}', '${file_name}', '${login}', '${paths}', '${lat}', '${lon}')
`;
con.query(q, (err, resp) => {
if (err) {
console.log(err);
return callback(false, err);
}
return callback("ok");
})
}
// return callback(resp);
});
}
exports.userExist = userExist;
exports.addUser = addUser;
exports.addPath = addPath;
......@@ -259,3 +297,4 @@ exports.createPath = createPath;
exports.verifyFileID = verifyFileID;
exports.getInfo = getInfo;
exports.getSharedFile = getSharedFile;
exports.addFile = addFile;
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment