Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1093 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Afficher une image avec header(..jpeg) et readfile en php

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Afficher une image avec header(..jpeg) et readfile en php

n°2077721
yuukuari
Posté le 23-05-2011 à 16:21:43  profilanswer
 

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 :

Code :
  1. $path = 'path/to/myimage.jpg';
  2. header('Content-Type: image/jpeg');
  3. readfile($path);


 
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 :cry:
 
Merci de votre aide !


Message édité par yuukuari le 23-05-2011 à 17:57:48
mood
Publicité
Posté le 23-05-2011 à 16:21:43  profilanswer
 

n°2077724
flo850
moi je
Posté le 23-05-2011 à 16:30:44  profilanswer
 

et quand tu enlèves le header , qu' est ce qui s'affiche ?

 

( normalement tu dois avoir les  erreurs en question)


Message édité par flo850 le 23-05-2011 à 16:31:11

---------------

n°2077746
yuukuari
Posté le 23-05-2011 à 17:47:21  profilanswer
 

Salut,
 
Et bien justement non il n'y a pas d'erreur ... enfin je pense !
J'ai essayé avec plusieurs images, voici un exemple.
 
http://img685.imageshack.us/img685/8755/errorbj.jpg


Message édité par yuukuari le 23-05-2011 à 19:53:12
n°2077772
yuukuari
Posté le 23-05-2011 à 19:52:51  profilanswer
 

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  :love:  
 
En espérant que ça serve à quelqu'un.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Afficher une image avec header(..jpeg) et readfile en php

 

Sujets relatifs
Afficher du HTML dans une JFramescript AS3 pour remplacer l'anime jouée par une image dans une DIV
Affichage d'un répertoire d'image aléatoireFaire afficher une zone ENUM
[MaxScript] Taille d'image liée à celles du global rendererImage Lazy Load sur nouvelobs.com
[Objective-C] Création d'image reçue via socket[OpenGL] Effet de distorsion de l'image
Taille d'un header ZenCart 
Plus de sujets relatifs à : Afficher une image avec header(..jpeg) et readfile en php


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR