Accès aux photos qui ne sont pas dans htdocs

erinda -  
 erinda -
Bonjour,

Bonjour,
je suis entrain d'ecrire une page web avec php et j'utilise apache2 comme serveur web et le document root c'est c:\xampp\htdocs.
Mon probleme est que je n'arrive pas a afficher une photo stockée dans le repertoire Mes documents et je ne veux pas changer son emplacement pour la mettre dans htdocs.
quelqu'un aurait une idée sur comment afficher la photo en utilisant php?
voici le code que j'ai fait:

<?php
echo"<img src=\"C:/Documents and Settings/ndayisenga.eric/My Documents/My Pictures/000000_2.jpg\"/>";
?>

A voir également:

2 réponses

Reivax962 Messages postés 3742 Statut Membre 1 011
 
Bonjour,

J'imagine que tu ne veux pas non plus que ton répertoire Mes Documents se retrouve en accès libre sur le net. Donc la modification de la configuration d'Apache ne me semble pas la meilleure chose à faire, d'autant plus que tu utilises PHP qui, lui, a un accès complet à ton disque dur (vive Windows !?)

À mon avis, le mieux est de créer une page PHP que tu vas nommer, par exemple, image.php. En modifiant son type MIME de sortie, elle peut envoyer une image.
Cette page prendra un paramètre GET qui sera le nom de ton image.
Du coup, tu appeleras l'image « Mes Documents\image1.jpg » de la façon suivante :
<img src='image.php?nom=image1' />

Le code de cette page PHP est assez simple :
<?php 
    // On indique que le PHP va générer une image 
    header("Content-type: image/jpeg"); 

    // On définit le chemin où sont stockées les images 
    $cheminImages = "C:\Mes Documents\Images\"; 

    // On sécurise un minimum 
    $nom = str_replace('..', '', url_decode($_GET['nom'])).'.jpg'; 
    $image = $cheminImages.$nom; 

    // Et on envoie le contenu du fichier 
    echo file_get_contents($image); 
?>  


L'extension est rajoutée par le script et non pas demandée en entrée, pour contrôler l'accès que tu donnes à ton disque dur.
On supprime également les '..' qu'un petit malin pourrait vouloir mettre au nom de l'image pour accéder à des fichiers en dehors de ton arborescence autorisée.

Xavier
0
erinda
 
merci beaucoup,ça marche
0