it-swarm.dev

PHP Nagłówek - Content-type: image/jpeg - Nie działa w przeglądarce Internet Explorer

Wszyscy nienawidzimy Internet Explorera podczas tworzenia szablonów HTML lub modyfikowania stron internetowych. Niedawno zbudowałem skrypt obrazka PHP, aby ukryć lokalizację adresu URL. Działa dobrze dla Firefoksa, Chrome, a nawet Safari.

Internet Explorer odmawia wyświetlenia obrazu ze skryptu PHP. Nie daje nawet uszkodzonych ikon obrazów. Po prostu puste kwadraty.

Android ma również ten sam problem, ale mogę do niego dotrzeć innym razem i może być powiązany.

Oto mój kod skryptu graficznego:

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

Szukałem wysoko i nisko w Google i tej witrynie. Nie można znaleźć stałego źródła wyjaśniającego, dlaczego program Internet Explorer nie wyświetla obrazu.

Każda pomoc jest bardzo mile widziana.

7
JCastell

Nazwa nagłówka Content-Type jest pisana wielkimi literami T. Nie jestem pewien, czy to jest problem, ale niektóre przeglądarki mogą nie rozpoznawać nagłówka Content-Type, gdy jest zapisywany małą literą t. Dlatego powinieneś użyć:

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

Coś innego, co może być problemem, to próba wyświetlenia obrazu, który nie jest plikiem jpeg, ale png lub gif, podczas gdy podajesz nagłówek typu image/jpeg. Dlatego powinieneś upewnić się, że podasz poprawny typ zawartości dla przeglądarki.

9
kokx

Internet Explorer używa typu MIME image/pjpeg. Używasz pjpeg dla IE i jpeg dla innych przeglądarek.

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

Źródło: image/pjpeg i image/jpeg

2
Jordi Kroon

Ustaw nagłówek długości zawartości.

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