diff --git a/agent/file.php b/agent/file.php new file mode 100644 index 00000000..455a64f7 --- /dev/null +++ b/agent/file.php @@ -0,0 +1,116 @@ += $file_mtime) +) { + http_response_code(304); + exit; +} + +// Send the file +header("Content-Type: $file_mime_type"); +header("Content-Disposition: $disposition; filename=\"$safe_file_name\""); +header("Content-Length: " . filesize($file_path)); +header("X-Content-Type-Options: nosniff"); + +// Clear output buffers so large files stream instead of loading into memory +while (ob_get_level()) { + ob_end_clean(); +} + +readfile($file_path); +exit; diff --git a/agent/files.php b/agent/files.php index e27e2a74..9054f939 100644 --- a/agent/files.php +++ b/agent/files.php @@ -606,14 +606,14 @@ $num_root_items = intval($row_root_files['num']) + intval($row_root_docs['num']) $files[] = [ 'id' => $file_id, 'name' => $file_name, - 'preview' => "../uploads/clients/$client_id/$file_reference_name" + 'preview' => "file.php?file_id=$file_id&thumb=1" ]; ?>