web-dev-qa-db-ja.com

PHPヘッダー-コンテンツタイプ:image / jpeg-Internet Explorerでは機能しない

HTMLテンプレートを作成したり、ウェブサイトを変更したりするとき、私たちは皆Internet Explorerを嫌っています。まあ、最近PHP画像スクリプトを作成してURLの場所を非表示にしました。Firefox、Chrome、さらにはSafariでも問題なく動作します。

Internet Explorerは、PHPスクリプトからの画像の表示を拒否します。壊れた画像のアイコンすら表示されません。単に四角が空白になります。

Androidにも同じ問題がありますが、別の機会に問題が発生する可能性があり、関連している可能性があります。

これが画像スクリプトのコードです。

$image_id = $_GET['id'];

include "mysql_connect.php";
$sql = "SELECT * FROM images WHERE code='$image_id'";
$result = mysql_query($sql);
$r=mysql_fetch_array($result);

$imagepath=$r['path'];

// Produce proper Image
header("Content-type: image/jpeg");

echo file_get_contents("$imagepath");

私はGoogleとこのWebサイトで高低を検索しました。 Internet Explorerが画像を表示しない理由を説明する確かなソースが見つかりませんでした。

どんな助けでも大歓迎です。

7
JCastell

Content-Typeヘッダー名は大文字のTで書かれています。それが問題かどうかはわかりませんが、一部のブラウザーは小文字のtで書かれているとContent-Typeヘッダーを認識しない場合があります。したがって、以下を使用する必要があります。

header("Content-Type: image/jpeg");

他に問題となる可能性があるのは、image/jpeg content-typeヘッダーを指定しているときに、jpegではなくpngまたはgifである画像を表示しようとした場合です。そのため、ブラウザに正しいコンテンツタイプを指定する必要があります。

9
kokx

Internet ExplorerはMIMEタイプimage/pjpegを使用します。 IE=の場合はpjpegを使用し、他のブラウザの場合はjpegを使用します。

header("Content-Type: image/pjpeg");

ソース: image/pjpeg and image/jpeg

2
Jordi Kroon

コンテンツ長ヘッダーを設定します。

header("Content-Length: " . filesize($imagepath));
0
Konr Ness