Nous détestons tous Internet Explorer lors de la construction de modèles HTML ou de 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 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 aux icônes d'image cassées. Simplement des carrés vierges. P>
Android a également le même problème, mais je peux arriver à cela un autre temps et pourrait être associé. P>
Voici mon code pour le script d'image: P >
$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");
4 Réponses :
Le nom d'en-tête de type de contenu est écrit avec une T. majuscules, je ne suis pas sûr de ne pas être le problème, mais certains navigateurs peuvent ne pas reconnaître l'en-tête de type de contenu lorsqu'il est écrit avec une t. Ainsi, vous devez utiliser:
header("Content-Type: image/jpeg");
Correction de la capitale T. Pour le moment, je ne teste que avec JPEG.
Internet Explorer utilise le type MIME image / pjpeg code>. Vous utilisez
pJpeg code> pour IE et
jpeg code> pour les autres navigateurs.
header("Content-Type: image/pjpeg");
Internet Explorer a besoin d'image / PJPEG en tant que type de contenu uniquement pour les JPEG encodés progressifs
Je lis ça quelque part et je l'ai essayé. Essayé à nouveau. Toujours pas de chance.
Définissez l'en-tête de longueur de contenu.
header("Content-Length: " . filesize($imagepath));
Bonne suggestion, j'ai ajouté cela il y a un peu de temps lorsque la source de données l'a recommandé. Il n'y a pas d'espaces blancs traînants non plus.
Je pense que je sais ce que le problème est.
Internet Explorer s'attend à ce que vous utilisiez l'image / JPEG et non Image / JPG. P>
Essayez ceci: p>
Header("Content-Type: image/jpeg");
Cela a fonctionné pour moi. J'ai eu un site où aucun des JPG est affiché dans Internet Explorer. Il s'est avéré que j'avais mis le type de contenu à l'image / JPG. Quand je l'ai changé à l'image / JPEG, tout a fonctionné correctement.
Quelle est la sortie brut i> b> de ce script? A-t-il l'air identique aux données JPEG sur le disque? Pas de sortie traction ou précédente?
Pour Firefox, il affiche l'image. Internet Explorer indique le code ASCII qu'il apparaît. J'ai aussi essayé d'utiliser Inclure ($ imagePath);
Soit vous émettez des espaces bleus avant ou après les données d'image ou vous manquez une en-tête de longueur de contenu. Vous avez également un problème d'injection SQL avec ce script.
Pouvez-vous relier la page Web? Je veux le tester
Désolé, je ne peux pas lier. Signé une NDA et c'est un site porno;)
J'ai trouvé le problème ... Apparemment Internet Explorer n'aimait pas mon attribut Hauteur. Enlevé, et cela a fonctionné. Devinez que je devrais faire fonctionner mon script miniature, comme cela m'a résolu mon problème de toute façon ... Merci pour l'aide de tout le monde.