query("SELECT YEAR(uploaded_at) AS year, QUARTER(uploaded_at) AS quarter, COUNT(*) AS file_count FROM files WHERE uploaded_at >= DATE_SUB(CURDATE(), INTERVAL 5 YEAR) GROUP BY YEAR(uploaded_at), QUARTER(uploaded_at) ORDER BY year, quarter "); $uploaded_files = $stmt->fetchAll(PDO::FETCH_ASSOC); // recent images & videos if (STATS_LAST_FILES) { $stmt = $db->query("SELECT id, extension FROM files WHERE mime LIKE 'image/%' ORDER BY uploaded_at DESC LIMIT 5"); $recent_images = $stmt->fetchAll(PDO::FETCH_ASSOC); $stmt = $db->query("SELECT id, extension FROM files WHERE mime LIKE 'video/%' ORDER BY uploaded_at DESC LIMIT 5"); $recent_videos = $stmt->fetchAll(PDO::FETCH_ASSOC); } // the most viewed files if (STATS_MOST_VIEWED) { $stmt = $db->query("SELECT id, extension, mime FROM files ORDER BY views DESC LIMIT 5"); $most_viewed_files = $stmt->fetchAll(PDO::FETCH_ASSOC); foreach ($most_viewed_files as &$f) { if (str_starts_with($f['mime'], 'video/')) { $f['color'] = 'blue'; } else if ($f['mime'] == 'application/x-shockwave-flash') { $f['color'] = 'red'; } } unset($f); } // --- file stats function format_filesize($file_size) { $suffix = 'MB'; $file_size /= 1024 * 1024; // MB if ($file_size >= 1024) { $file_size /= 1024; $suffix = 'GB'; } return sprintf('%.2f%s', $file_size, $suffix); } $stmt = $db->query("SELECT COUNT(*) AS file_count, SUM(size) AS active_content, AVG(size) AS approx_filesize, COUNT(*) / TIMESTAMPDIFF(MINUTE, MIN(uploaded_at), MAX(uploaded_at)) AS avg_upload_rate FROM files WHERE id NOT IN (SELECT id FROM file_bans) "); $file_stats = $stmt->fetchAll(PDO::FETCH_ASSOC)[0]; if (STATS_DISKSIZE > 0) { $file_stats['future_file_count'] = floor(STATS_DISKSIZE / $file_stats['approx_filesize']); if ($file_stats['avg_upload_rate'] > 0.01) { $file_stats['estimated_time'] = floor((STATS_DISKSIZE - $file_stats['active_content']) / $file_stats['avg_upload_rate']); $dt = new DateTime(); $dt->modify("+{$file_stats['estimated_time']} minutes"); $file_stats['estimated_time'] = $dt->format("F j, Y"); } } $file_stats['active_content'] = format_filesize($file_stats['active_content']); $file_stats['approx_filesize'] = format_filesize($file_stats['approx_filesize']); ?> Statistics - <?= INSTANCE_NAME ?>

Statistics

Files uploaded (per quarter)

Recent images

Recent videos

The most viewed files

"> No thumbnail. No thumbnail. No thumbnail. No thumbnail. No thumbnail.

About files

Serving files
Active content
Average filesize
Average upload rate (per minute)
How many files can be uploaded ~
Estimated date of hard disk space running out