'That file no longer exists.']); exit; } $client_id = intval($row['file_client_id']); enforceClientAccess(); $can_edit = lookupUserPermission('module_support') >= 2; $file_name = escapeHtml($row['file_name']); $file_archived = !empty($row['file_archived_at']); $file_info = fileTypeInfo($row['file_ext']); $file_mime = $row['file_mime_type']; // What the preview can show - the same rule agent/file.php serves inline by if (!in_array($file_mime, getInlineViewableMimeTypes(), true)) { $preview_kind = ''; } elseif ($file_mime === 'application/pdf') { $preview_kind = 'pdf'; } elseif ($file_mime === 'text/plain' || $file_mime === 'application/json') { $preview_kind = 'text'; } else { $preview_kind = 'image'; } $folder_tree = folderTree($client_id); $folder_id = isset($folder_tree[intval($row['file_folder_id'])]) ? intval($row['file_folder_id']) : 0; $folder_label = $folder_id ? implode(' / ', array_column(folderPath($folder_tree, $folder_id), 'folder_name')) : 'Top level'; $share = mysqli_fetch_assoc(mysqli_query($mysqli, "SELECT item_recipient, item_expire_at FROM shared_items WHERE item_client_id = $client_id AND item_type = 'File' AND item_related_id = $file_id AND " . shareOpenSql() . " ORDER BY item_expire_at DESC LIMIT 1")); ob_start(); ?>