Accès aux photos qui ne sont pas dans htdocs
erinda
-
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\"/>";
?>
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:
- Accès aux photos qui ne sont pas dans htdocs
- Partager des photos - Guide
- Acces rapide - Guide
- Toutes mes photos - Guide
- Google photos - Télécharger - Albums photo
- Accès refusé - Guide
2 réponses
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 :
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
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