From 3cc9c0720d3513997e0e622ef0f35b80a998f6e2 Mon Sep 17 00:00:00 2001 From: johnnyq Date: Wed, 30 Oct 2024 18:39:00 -0400 Subject: [PATCH] FEATURE: Files now shows File Size, Mime Type, and who uploaded the file. These fields will only populate on newly uplaoded files, existing ones will show 0 or blank --- client_files.php | 28 ++++++++++++++++++++++++++-- database_updates.php | 16 +++++++++++++--- database_version.php | 2 +- post/user/file.php | 6 +++++- 4 files changed, 45 insertions(+), 7 deletions(-) diff --git a/client_files.php b/client_files.php index c60b5178..97ae88e5 100644 --- a/client_files.php +++ b/client_files.php @@ -43,8 +43,8 @@ if ($get_folder_id == 0 && isset($_GET["q"])) { $sql = mysqli_query( $mysqli, "SELECT SQL_CALC_FOUND_ROWS * FROM files + LEFT JOIN users ON file_created_by = user_id WHERE file_client_id = $client_id - AND file_archived_at IS NULL AND (file_name LIKE '%$q%' OR file_ext LIKE '%$q%' OR file_description LIKE '%$q%') $query_images @@ -54,6 +54,7 @@ if ($get_folder_id == 0 && isset($_GET["q"])) { $sql = mysqli_query( $mysqli, "SELECT SQL_CALC_FOUND_ROWS * FROM files + LEFT JOIN users ON file_created_by = user_id WHERE file_client_id = $client_id AND file_folder_id = $folder_id AND file_archived_at IS NULL @@ -314,6 +315,10 @@ while ($folder_id > 0) { $file_name = nullable_htmlentities($row['file_name']); $file_reference_name = nullable_htmlentities($row['file_reference_name']); $file_ext = nullable_htmlentities($row['file_ext']); + $file_size = intval($row['file_size']); + $file_size_KB = number_format($file_size / 1024); + $file_mime_type = nullable_htmlentities($row['file_mime_type']); + $file_uploaded_by = nullable_htmlentities($row['user_name']); ?> @@ -363,6 +368,16 @@ while ($folder_id > 0) { Name + + + Type + + + + + Size + + Uploaded @@ -405,6 +420,10 @@ while ($folder_id > 0) { } else { $file_icon = "file"; } + $file_size = intval($row['file_size']); + $file_size_KB = number_format($file_size / 1024); + $file_mime_type = nullable_htmlentities($row['file_mime_type']); + $file_uploaded_by = nullable_htmlentities($row['user_name']); $file_created_at = nullable_htmlentities($row['file_created_at']); $file_folder_id = intval($row['file_folder_id']); @@ -456,7 +475,12 @@ while ($folder_id > 0) { - + + KB + + +
+ 0) { ?>
diff --git a/database_updates.php b/database_updates.php index de29cc10..d504e8d9 100644 --- a/database_updates.php +++ b/database_updates.php @@ -2353,11 +2353,21 @@ if (LATEST_DATABASE_VERSION > CURRENT_DATABASE_VERSION) { mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '1.6.2'"); } + if (CURRENT_DATABASE_VERSION == '1.6.2') { + + mysqli_query($mysqli, "ALTER TABLE `files` MODIFY `file_description` VARCHAR(250) DEFAULT NULL"); + mysqli_query($mysqli, "ALTER TABLE `files` MODIFY `file_ext` VARCHAR(10) DEFAULT NULL"); + mysqli_query($mysqli, "ALTER TABLE `files` ADD `file_created_by` INT(11) NOT NULL DEFAULT 0 AFTER `file_accessed_at`"); + mysqli_query($mysqli, "ALTER TABLE `files` ADD `file_size` BIGINT UNSIGNED NOT NULL DEFAULT 0 AFTER `file_ext`"); + mysqli_query($mysqli, "ALTER TABLE `files` ADD `file_mime_type` VARCHAR(100) DEFAULT NULL AFTER `file_hash`"); - // if (CURRENT_DATABASE_VERSION == '1.6.2') { - // // Insert queries here required to update to DB version 1.6.3 + mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '1.6.3'"); + } + + // if (CURRENT_DATABASE_VERSION == '1.6.3') { + // // Insert queries here required to update to DB version 1.6.4 // // Then, update the database to the next sequential version - // mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '1.6.3'"); + // mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '1.6.4'"); // } } else { diff --git a/database_version.php b/database_version.php index 3f2f3539..038ae48d 100644 --- a/database_version.php +++ b/database_version.php @@ -5,4 +5,4 @@ * It is used in conjunction with database_updates.php */ -DEFINE("LATEST_DATABASE_VERSION", "1.6.2"); +DEFINE("LATEST_DATABASE_VERSION", "1.6.3"); diff --git a/post/user/file.php b/post/user/file.php index e7733f21..7821f7b8 100644 --- a/post/user/file.php +++ b/post/user/file.php @@ -31,6 +31,10 @@ if (isset($_POST['upload_files'])) { $extarr = explode('.', $_FILES['file']['name'][$i]); $file_extension = sanitizeInput(strtolower(end($extarr))); + // Extract the file mime type and size + $file_mime_type = sanitizeInput($single_file['type']); + $file_size = intval($single_file['size']); + // directory in which the uploaded file will be moved $upload_file_dir = "uploads/clients/$client_id/"; $dest_path = $upload_file_dir . $file_reference_name; @@ -40,7 +44,7 @@ if (isset($_POST['upload_files'])) { // Extract .ext from reference file name to be used to store SHA256 hash $file_hash = strstr($file_reference_name, '.', true) ?: $file_reference_name; - mysqli_query($mysqli,"INSERT INTO files SET file_reference_name = '$file_reference_name', file_name = '$file_name', file_description = '$description', file_ext = '$file_extension', file_hash = '$file_hash', file_folder_id = $folder_id, file_client_id = $client_id"); + mysqli_query($mysqli,"INSERT INTO files SET file_reference_name = '$file_reference_name', file_name = '$file_name', file_description = '$description', file_ext = '$file_extension', file_hash = '$file_hash', file_mime_type = '$file_mime_type', file_size = $file_size, file_created_by = $session_user_id, file_folder_id = $folder_id, file_client_id = $client_id"); //Logging $file_id = intval(mysqli_insert_id($mysqli));