0
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'];
}

header('Content-Type': image/jpeg)たとえば、を配置しようとすると、空白のページと現在のURLのみが表示されます。

<img>タグを置き換えるために画像を表示しようとしています。

filepathには、イメージのディレクトリの物理パスが含まれています。

4

2 に答える 2

1

問題全体が解決するかどうかはわかりませんechoが、関数の戻り値で使用しないでくださいheader:ヘッダーを送信するには、header関数を使用するだけで、何もエコーしません:

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

無効な画像(つまり、Firefox がコンテンツではなく URL を表示する)は、多くの場合、画像の日付の前後に無効な出力が原因で発生します。画像自体以外に何もブラウザに送信されていないことを確認してください。

于 2009-11-10T06:47:19.273 に答える
0

echo headerする必要はありませんheader

于 2009-11-10T06:46:46.777 に答える