PHP Dosya Into IMG Çekme

2 Cevap php

Ben bir PHP dosyası ve aynı dizinde bir görüntü var. Nasıl PHP dosyası JPEG olarak başlıklarını belirlemek ve içine görüntüyü "çekme" alabilir. Ben dosya.php gittim Yani o görüntü göstermek istiyorum. Ben file_created.jpg için file.php yeniden ve işe ihtiyacı varsa.

2 Cevap

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);

: Kadar kolay olmalı

<?php
    $filepath= '/home/foobar/bar.jpg';
    header('Content-Type: image/jpeg');
    echo file_get_contents($filepath);
?>

Sadece oldukça önemsiz olmalıdır doğru mime türünü belirlemek için nasıl anlamaya gerekir.