diff options
author | Alex Vitkov <alexvitkov98@gmail.com> | 2021-02-13 12:42:56 +0200 |
---|---|---|
committer | Alex Vitkov <alexvitkov98@gmail.com> | 2021-02-13 12:42:56 +0200 |
commit | f10a55259c4eda39e909bc54ac97744a4d053b8a (patch) | |
tree | c0c5a60755e73ccf0911bd5785697b8a977473da | |
parent | bb9d4f024e7cfa1c79fc1e4118774fa4ea2fd3bd (diff) | |
download | fileup-f10a55259c4eda39e909bc54ac97744a4d053b8a.tar.gz |
path
-rw-r--r-- | loggedin.js | 23 | ||||
-rw-r--r-- | php/readfile.php | 36 |
2 files changed, 56 insertions, 3 deletions
diff --git a/loggedin.js b/loggedin.js index 8681dba..c2d407f 100644 --- a/loggedin.js +++ b/loggedin.js @@ -247,6 +247,19 @@ function add_link_functionality(link, length) { add_link_functionality(document.getElementById("home_path_entry"), 0); +function open_file(fileview) { + var data = new FormData(); + data.append('folder', get_path()); + data.append('path', get_path()); + + var xhr = new XMLHttpRequest(); + xhr.open('POST', '/php/readfile.php', true); + xhr.onload = function () { + + }; + xhr.send(data); +} + function add_file_visuals(fileview) { var visuals = document.createElement('div'); fileview.visuals = visuals; @@ -262,16 +275,20 @@ function add_file_visuals(fileview) { } } else { img.src=`/mimeicons/${fileview.mimetype.replace("/", "-")}.png`; + visuals.onclick = () => { + open_file(fileview); + } } visuals.oncontextmenu = (e) => { if (!dragging) { context(e, [ ['Open', () => { - if (fileview.is_directory) { pwd.push(fileview.filename); + if (fileview.is_directory) { + pwd.push(fileview.filename); load_dir(); } else { - alert('not implemented'); + open_file(fileview); } }], ['Rename', () => { rename_file(fileview.filename); }], @@ -342,7 +359,7 @@ function get_path(max_length) { for (let i = 0; i < max_length; i++) { path += pwd[i]; if (i != max_length - 1) - path + "/"; + path += "/"; } return path; } diff --git a/php/readfile.php b/php/readfile.php new file mode 100644 index 0000000..d978ffc --- /dev/null +++ b/php/readfile.php @@ -0,0 +1,36 @@ +<?php +require_once "database.php"; +require_once "configuration.php"; +require_once "file_type_recogniser.php"; +require_once "node.php"; +require_once "misc.php"; + +session_start(); +if (!isset($_POST["filename"]) || !isset($_FILES["folder"])) { + error_log("/php/readfile.php - invalid request"); + http_response_code(400); + exit(1); +} + +$user = $_SESSION['user_object']; +$homedir = $user->home_directory; +$folder = $_POST["folder"]; +$filename = $_POST["filename"]; + +$dir = get_directory($folder, $user); +if (!$dir) { + error_log("i/php/readfile.php - invalid directory"); + http_response_code(409); + exit(0); +} + +$contents_of_dir = $database->get_links_of($dir); +$file_node = null; + +foreach ($contents_of_dir as $c) { + if ($c['name'] == $filename) { + $file_node = $c; + } +} + +var_error_log($file_node); |