8

HTML テンプレートを作成したり、Web サイトを変更したりするときは、Internet Explorer が嫌いです。最近、URL の場所を隠すために PHP 画像スクリプトを作成しました。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");

私はグーグルとこのウェブサイトで高低を検索しました。Internet Explorer が画像を表示しない理由を説明する確かな情報源が見つかりませんでした。

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

4

4 に答える 4

10

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

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

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

于 2013-01-03T23:01:02.557 に答える
2

Internet Explorer は MIME タイプを使用しimage/pjpegます。pjpegIE およびjpegその他のブラウザーに使用します。

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

ソース: image/pjpeg および image/jpeg

于 2013-01-03T23:02:28.103 に答える
0

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

header("Content-Length: " . filesize($imagepath));
于 2013-01-03T23:04:08.870 に答える