dir/mod/photo.php

50 lines
1.0 KiB
PHP

<?php
use Friendica\Directory\App;
require_once 'datetime.php';
function photo_init(App $a)
{
switch ($a->argc) {
case 2:
$photo = $a->argv[1];
break;
case 1:
default:
exit;
}
$profile_id = str_replace('.jpg', '', $photo);
$r = q('SELECT * FROM `photo` WHERE `profile-id` = %d LIMIT 1', intval($profile_id));
if (count($r)) {
$data = $r[0]['data'];
} else {
$data = file_get_contents('images/default-profile-sm.jpg');
}
//Enable async process from here.
session_write_close();
//Try and cache our result.
$etag = md5($data);
header('Etag: ' . $etag);
header('Expires: ' . datetime_convert('UTC', 'UTC', 'now + 1 week', 'D, d M Y H:i:s' . ' GMT'));
header('Cache-Control: max-age=' . intval(7 * 24 * 3600));
if (function_exists('header_remove')) {
header_remove('Pragma');
header_remove('pragma');
}
if (isset($_SERVER['HTTP_IF_NONE_MATCH']) && $_SERVER['HTTP_IF_NONE_MATCH'] == $etag) {
header('HTTP/1.1 304 Not Modified');
exit;
}
header('Content-type: image/jpeg');
echo $data;
exit;
}