Si j'appelle: http://localhost/info/imgfeed.php?img=deer.png dans la barre d'adresse IE puis il est bien affiché.PHP écrit PNGs, problème constant dans IE8
Si je créer un lien URL dans un fichier HTML comme ceci:
<img src="imgfeed.php?img=dove.png" alt="" height="" width="" />
<img src="imgfeed.php?img=dolphin.png" alt="" height="" width="" />
<img src="imgfeed.php?img=deer.png" alt="" height="" width="" />
Ensuite, il échoue lamentablement sur IE mais fonctionne très bien sur d'autres navigateurs (testé Chrome/FF dans les versions stables les plus récents). Mon code PHP est la suivante (copie presque mot pour mot du manuel PHP):
<?php
$server = $_SERVER['DOCUMENT_ROOT'];
$path = basename(dirname(__FILE__));
write_img($server.'/'.$path.'/'.$_GET["img"]);
function write_img($filename) {
$size = getimagesize($filename);
if ($size && $fp) {
header("Content-type: {$size['mime']}");
header("Cache-Control: no-cache");
header("Expires: -1");
readfile($filename);
exit;
} else {
// error
}
}
?>
Toutes les idées sur ce qui se passe serait très apprécié, je l'ai essayé une gamme de tours avec les en-têtes ainsi qu'avec .htaccess (Faire apparaître le fichier PHP comme un fichier PNG) mais rien de tout cela n'a d'effet sur le rendu dans IE qui ne montre finalement que 3 points minuscules (qui peuvent être sauvegardés sous untitled.bmp).
Mise à jour problème résolu avec la permission de Meagar (supprimer largeur/hauteur de HTML et tout est bon). Exemple ci-dessus mis à jour pour refléter les conseils de Marc B sur fpassthru vs readfile.
ummm ... Qu'est-ce que ça fait dans IE que vous dites "échouer lamentablement"? Oh, et vous rendez-vous compte qu'en définissant 'height =" "' et 'width =" "' peut être interprété comme 0 height/width? Si vous voulez qu'ils soient automatiques (en fonction de la taille de l'image), ne les incluez même pas dans les attributs ... – ircmaxell
En plus de cet IE a tendance à ajouter des bordures aux images si vous ne spécifiez pas border = "0" – Dai