répertoire hors web

Joce
Invité n'ayant pas de compte PHPfrance

11 avr. 2008, 18:30

Bonjour à tous,

Je cherche à savoir comment faire pour récupérer un fichier image, qui n'est pas dans le répertoire web, mais dans un le répertoire uploads à la racine.
C'est pour plus de sécurité, comme ça les internautes peuvent uploader des images, mais pas allez sur www.monSite.com/monImage.jpg .

Merci,

Joce

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

11 avr. 2008, 18:51

Qu'entends tu par "récupérer un fichier image"
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

JoceC
Invité n'ayant pas de compte PHPfrance

11 avr. 2008, 18:54

Le mettre dans une balise img

JoceC
Invité n'ayant pas de compte PHPfrance

11 avr. 2008, 18:57

L'afficher dans une balise img, sans la déplacer du répertoire ;)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

11 avr. 2008, 19:14

il y a quelques chose de bizarre dans ta réflexion :-k
Tu mets une image en dehors de la racine web, mais tu veux l'utiliser sur ton site :?

Si tu veux mettre ton image dans une balises <img>, il faut que cette image soit dans la racine web. Pour que tes visiteurs voient l'image, il faut qu'il puisse y accéder.

Après, si ton but est que tes images ne puissent être affichées depuis un autre site, il existe d'autres techniques ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

JoceC
Invité n'ayant pas de compte PHPfrance

11 avr. 2008, 19:52

Oui, c'est faisable.
Avec la fonction readfile, tu peux lire un fichier en dehors de la racine web et le mettre dans une balise.
Mais c'est avec la fonction header ou ça se complique ;-)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

11 avr. 2008, 20:15

Et c'est surtout un lourd traitement PHP pour une image qui sera de toute façon envoyées au navigateur, donc enregistrable sur le poste client, ou disponible via une url (http://monSite/aff_image.php?nom_image=truc)

Donc, beaucoup de contraintes, pour aucune sécurité ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

JoceC
Invité n'ayant pas de compte PHPfrance

11 avr. 2008, 21:04

Yes, ça se complique trop je pense ;)

Merci zeus

ViPHP
ViPHP | 4039 Messages

11 avr. 2008, 21:53

c'est pour empêcher qu'on la copie, l'image ?

De toute façon, il suffit d'une capture d'écran pour l'avoir l'image.. tu ne peux pas protéger définitivement une image sur le web, quoi que tu fasses..
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

JoceC
Invité n'ayant pas de compte PHPfrance

11 avr. 2008, 23:14

Non , c'est vraiment pour sécuriser au cas ou.

ViPHP
ViPHP | 4039 Messages

12 avr. 2008, 14:06

Alors, pourquoi ne pas ne pas faire de script d'upload du tout ? c'est plus pratique, et tu es protégé de tout, quoi qu'il arrive.

Sinon, sans rire, tu peux simplement faire un script php qui va chercher le contenu d'un fichier image d'un répertoire connu de toi seul, et l'afficher.

Quelque chôse comme ceci:
<?php
header('Content-type: image/gif');
header('Content-Disposition: attachment; filename="monfichier.gif"'); 
header('Cache-Control: no-store, no-cache, must-revalidate');


$url="./repertoire/images/image3.gif";
readfile($url);
?>
Et avant, vu que tu es en php, tu peux vérifier qui regarde l'image, selon le host, l'autoriser ou pas, tout ça..
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.