Afficher une image avec header(..jpeg) et readfile en php - PHP - Programmation
Marsh Posté le 23-05-2011 à 16:30:44
et quand tu enlèves le header , qu' est ce qui s'affiche ?
( normalement tu dois avoir les erreurs en question)
Marsh Posté le 23-05-2011 à 17:47:21
Salut,
Et bien justement non il n'y a pas d'erreur ... enfin je pense !
J'ai essayé avec plusieurs images, voici un exemple.
Marsh Posté le 23-05-2011 à 19:52:51
Bon j'ai fini par trouver la réponse !
Au début de mon fichier images.php, je faisais plusieurs includes qui à leur tour faisaient des require_once sur d'autres fichiers php.
Un de ces fichiers était encodé en UTF-8 au lieu d'être en UTF-8 (sans BOM) comme les autres.
Apparemment le format UTF-8 avec BOM insère un espace insécable en début de fichier, d'où le problème
En changeant le format, tout est rentré dans l'ordre
En espérant que ça serve à quelqu'un.
Marsh Posté le 23-05-2011 à 16:21:43
Bonjour,
Je voudrais afficher une image seulement à certains utilisateurs.
Lorsqu'un internaute pense être redirigé vers http://www.monsite.com/images/image.jpg, un .htaccess redirige en fait vers un fichier php images.php à la racine de mon site.
Dans ce fichier images.php, je récupère le user en session, je regarde s'il a bien le droit de visualiser l'image et si :
- Il n'a pas le droit, je renvoie une page 404
- Il a le droit, je lui affiche l'image en modifiant le header.
Pour modifier le header et afficher l'image, je fais comme suit :
J'ai bien vérifié l'existence du fichier (file_exists), ses dimensions (getimagesize) et sa taille (filesize), tout est ok à ce niveau.
Lorsque je retire la ligne header('Content-Type: image/jpeg');, je récupère bien le fichier mais non sous format jpeg.
Dès que j'ajoute le header, j'obtiens l'erreur suivante, sous forme d'image :
L'image "http://127.0.0.1/images/image.jpg" ne peut être affichée car elle contient des erreurs.
J'ai beau parcourir le net à la recherche d'une solution, tout le monde arrive à afficher une image avec ce bout de script ...
Ce qui est bizarre c'est que le header a l'air de fonctionner (j'ai bien une image en sortie, mais sous forme de texte d'erreur) et que readfile a l'air de bien lire l'image.
J'ai aussi essayé avec d'autres images jpg que mon image de test ainsi qu'avec un png mais c'est la mm chose
Merci de votre aide !
Message édité par yuukuari le 23-05-2011 à 17:57:48