From c526938c960524e8e79124890875cd7afeae1d7f Mon Sep 17 00:00:00 2001 From: moehm Date: Wed, 19 Mar 2014 17:39:48 +0100 Subject: Added func_download and func_delete. --- www/functions/func_delete.php | 83 +++++++++++++++++++++++++++++++++++++++++ www/functions/func_download.php | 67 +++++++++++++++++++++++++++++++++ www/functions/func_select.php | 4 +- 3 files changed, 152 insertions(+), 2 deletions(-) create mode 100644 www/functions/func_delete.php create mode 100644 www/functions/func_download.php (limited to 'www/functions') diff --git a/www/functions/func_delete.php b/www/functions/func_delete.php new file mode 100644 index 0000000..2dab9e2 --- /dev/null +++ b/www/functions/func_delete.php @@ -0,0 +1,83 @@ +query("SELECT folder, hash FROM files WHERE id=".$file_id.";"); + $check_if_file_ar = $check_if_file_db->fetchArray(SQLITE3_NUM); + + if($check_if_file_ar[0] != "FILE"){ + return DELETE_FILE_NO_FILE; + } + + $file_hash = $check_if_file_ar[1]; + + if(!unlink($uploaddir.$file_hash.".gz")){ + return DELETE_FILE_UNLINK; + } + + if($db->exec(" + BEGIN TRANSACTION; + DELETE FROM files WHERE id=".$file_id."; + COMMIT; + ")){ + return DELETE_FILE_SUCCESS; + } else { + return DELETE_FILE_DATABASE; + } +} + +function delete_user($user){ + $db = $GLOBALS["db"]; + $uploaddir = "../files/"; + + $owner = user_id($db, $user); + + $hash_array_db = $db->query("SELECT hash FROM files WHERE folder='FILE' AND owner=".$owner.";"); + + $count = 0; + while($row1 = $hash_array_db->fetchArray(SQLITE3_NUM)){ + $hash_ar[$count] = $row1[0]; + $count++; + } + + $count = 0; + + for($i=0; $iquery("SELECT id, owner FROM files WHERE folder='FILE' AND hash=".$hash_ar[$i].";"); + while($row2 = $file_id_owner->fetchArray(SQLITE3_NUM)){ + if($row2[1] != $_SESSION["userid"]){ + $saved_files[$count] = $hash_ar[$i]; + } + $count++; + } + } + + for($i=0; $iexec(" + BEGIN TRANSACTION; + DELETE FROM user WHERE id=".$owner."; + COMMIT; + ")){ + return DELETE_USER_SUCCESS; + } else { + return DELETE_USER_DATABASE; + } +} diff --git a/www/functions/func_download.php b/www/functions/func_download.php new file mode 100644 index 0000000..91c8085 --- /dev/null +++ b/www/functions/func_download.php @@ -0,0 +1,67 @@ +query("SELECT id, owner, share FROM files WHERE parent=" . $folder_id . "); + $file_id_ar = $file_id_db->fetchArray(SQLITE3_NUM); + $file_id = $file_id_ar[0]; + + $check_verification_db = $ + $check_verification_ar[1]; + $share = $check_verification_ar[2]; + + + if($_SESSION["login"] && ($_SESSION["userid"] == $file_owner)){ + $var = download_file($db, $file_id); + } else { + if($share != "PUBLIC"){ + return false; + } + + $var = download_file($db, $file_id); + } +*/ + + $var = download_file($db, $file_id); + + return $var; +} + +function check_file_hash($db, $file_id, $download_hash){ + $check_hash_db = $db->query("SELECT share FROM files WHERE id=" . SQLite3::escapeString($file_id).";"); + $check_hash_ar = $check_hash_db->fetchArray(SQLITE3_NUM); + + if(($check_hash_ar[0] != "PUBLIC") || ($check_hash_ar[0] != $download_hash)){ + return false; + } + + $var = download_file($db, $file_id); + return $var; + +} + +function download_file($db, $file_id){ + + $file_db = $db->query("SELECT name, mime, hash FROM files WHERE id=". SQLite3::escapeString($file_id).";"); + $file_ar = $file_db->fetchArray(SQLITE3_NUM); + $file_name = $file_ar[0]; + $file_mime = $file_ar[1]; + $file_hash = $file_ar[2]; + + $uploaddir = "../files/"; + $gzip_file = $uploaddir . $file_hash . ".gz"; + $fp = gzopen($gzip_file, '') // TODO: DECOMPRESS CONSTANT + + //TODO GZIP DECOMPRESSION + + //TODO set HTTP HEADER + + return true; + +} diff --git a/www/functions/func_select.php b/www/functions/func_select.php index 2acfb93..a720feb 100755 --- a/www/functions/func_select.php +++ b/www/functions/func_select.php @@ -24,12 +24,12 @@ function select_file_id($db, $owner, $folder_path){ for($i=0; $i<$length; $i++){ - $parentdir_db = $db->query("SELECT id, parent FROM files WHERE owner=" . $owner . " AND folder='DIRECTORY' " . $share . " AND parent=" . $parentdir . " AND name='" . SQLite3::escapeString($folder_array_unsafe[$i]) . "';"); + $parentdir_db = $db->query("SELECT id, parent FROM files WHERE owner=" . $owner . " AND " . $share . " AND parent=" . $parentdir . " AND name='" . SQLite3::escapeString($folder_array_unsafe[$i]) . "';"); $prim_id = $parentdir_db->fetchArray(SQLITE3_NUM); if(empty($prim_id[0])){ - return $parentdir; + return $parentdir; //TODO; Return false because file not found } if($parentdir != $prim_id[1]){ -- cgit v1.2.3