web-dev-qa-db-fra.com

PHP En-tête - Type de contenu: image/jpeg - Ne fonctionne pas pour Internet Explorer

Nous détestons tous Internet Explorer lors de la création de modèles HTML ou de la modification de sites Web. Eh bien, j'ai récemment construit un script d'image PHP pour masquer l'emplacement de l'URL. Cela fonctionne très bien pour Firefox, Chrome et même Safari.

Internet Explorer refuse d'afficher l'image à partir du script PHP. Il ne donne même pas les icônes d'image brisées. Carrés simplement blancs.

Android a également le même problème, mais je peux y revenir une autre fois et pourrait être lié.

Voici mon code pour le script d'image:

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

J'ai cherché haut et bas sur Google et ce site. Impossible de trouver une source solide expliquant pourquoi Internet Explorer n’affiche pas l’image.

Toute aide est grandement appréciée.

7
JCastell

Le nom de l'en-tête Content-Type est écrit avec un T majuscule. Je ne sais pas si c'est le problème, mais certains navigateurs peuvent ne pas reconnaître l'en-tête Content-Type lorsqu'il est écrit avec un minuscule t. Ainsi, vous devriez utiliser:

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

Une autre chose qui pourrait poser problème, c'est lorsque vous essayez d'afficher une image qui n'est pas un fichier jpeg, mais un fichier png ou gif, tandis que vous donnez l'en-tête de type de contenu image/jpeg. Donc, vous devez vous assurer que vous donnez le type de contenu correct au navigateur.

9
kokx

Internet Explorer utilise le type mime image/pjpeg. Vous utilisez pjpeg pour IE et jpeg pour les autres navigateurs.

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

Source: image/pjpeg et image/jpeg

2
Jordi Kroon

Définissez l'en-tête de la longueur du contenu.

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