Başka bir cevap tarafından önerilen ziyade kullanımı daha file_get_contents, readfile ve çıkış dışarı güzel oynamak için biraz daha fazla HTTP başlıklarını kullanın:
<?php
$filepath= '/home/foobar/bar.gif'
header('Content-Type: image/gif');
header('Content-Length: ' . filesize($filepath));
readfile($file);
?>
readfile dosyadan verileri okur ve file_get_contents ilk belleğe tüm dosya çekin ve sonra çıktı bu olurdu oysa, çıkış tamponu doğrudan yazar. Dosyası çok büyükse readfile kullanarak büyük bir fark yaratıyor.
Eğer şirin olsun istedim, çıktı son değişiklik zamanı olabilir, ve If-Modified-Since başlık için gelen http başlıklarını kontrol ve zaten güncel sürümünü tarayıcı anlatmak için boş bir 304 yanıtı döndürebilir .. .. burada bunu nasıl gösteren dolgun bir örnek:
$filepath= '/home/foobar/bar.gif'
$mtime=filemtime($filepath);
$headers = apache_request_headers();
if (isset($headers['If-Modified-Since']) &&
(strtotime($headers['If-Modified-Since']) >= $mtime))
{
// Client's cache IS current, so we just respond '304 Not Modified'.
header('Last-Modified: '.gmdate('D, d M Y H:i:s', $mtime).' GMT', true, 304);
exit;
}
header('Content-Type:image/gif');
header('Content-Length: '.filesize($filepath));
header('Last-Modified: '.gmdate('D, d M Y H:i:s', $mtime).' GMT');
readfile($filepath);