Görüntü readfile / file_get_contents kullanarak görüntüler değil

2 Cevap php
if(preg_match('/^[a-zA-Z0-9]+\.(gif|jpe?g)$/',$row['filename'],$matches) &&
    is_readable($row['filepath'].$row['filename'])){    
  echo header('Content-Type: image/'.$matches[1]);    
  echo header('Content-Length: '.filesize($row['filepath'].$row['filename']));    
  echo file_get_contents($row['filepath'].$row['filename']);
} else {
  echo 'cant serve image: '.$row['filename'];
}

Ben yerleştirmek için çalıştığınızda header('Content-Type': image/jpeg), örneğin, sadece boş bir sayfa ve geçerli url görüntüler.

Im benim <img> etiketleri değiştirmek için bir resim görüntülemek için çalışıyor.

filepath görüntü dizinin fiziksel yolunu içerir.

2 Cevap

Bu bütün sorunu çözebiliriz, ama header function : to send a header, just use the header işlevin dönüş değeri echo kullanmak gerekir, ve bir şey yankı yok emin değil :

header('Content-Type: image/'.$matches[1]);

Eğer görüntünün kendisinden başka tarayıcıya gönderilen bir şey yok emin olun - görüntü tarihten önce / sonra geçersiz bir resim (ie, Firefox displays its URL instead of its content) sık sık geçersiz çıktı kaynaklanır.

Sen, echo header gerek yok, sadece header.