Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour je reviens vers vous pour une autre question, je ne savais pas où la caser mais comme j'utilise un pattern MVC je poste ici au cas où.
j'ai une série de fichiers pdf ou jpg, j'adorerais les stocker ailleurs que dans une sous directorie de mon documentRoot afin de m'assurer d'une protection maximale.
En les stockant dans une sous directorie de mon documentRoot je dois y ajouter un htaccess mais j'aime pas trop car en y mettant un "deny from all" je ne peux pas les afficher, peut etre me faut il retravailler mes instructions de ce fichier.
En les stockant ailleurs, donc beaucoup mieux protégé je ne vois que la solution de lire le fichier (readfile), de modifier le header et d'envoyer cela dans l'output, mais ça me fait consommer de la ressource pour rien.
si vous pouvez m'aiguiller vers une solution que vous pratiquez vous même ça m'aiderai beaucoup.
merci
Hors ligne
Je fais comme toi :
- je teste les droits
- un file_get_content,
- j'envoie les bons headers
- j'envoie le fichier
Si les fichiers à envoyer font 100Mo, ça pose effectivement un problème parce que ça t'oblige à autoriser ton script à utiliser 100Mo...
Philippe
Hors ligne
merci de ta réponse
mais j'ai des fichiers jpeg que je veux protéger, j'en fais une sorte d'album dans une page web et là pas moyen de faire des readfile, et la solution des les copier temporirement dans le repertoire public ne m'enchante guerre, les iframe non plus, je suis un peu bloqué, par bloqué j'exagère un peu car je les mets au pire dans un repertoire public mais c'est pas top au niveau sécurité...
Hors ligne
si t'as structure peux etre
fichier
-> les fichiers a protéger
library
api
www
-> index.php (ton bootstrap quoi )
tu peux utiliser la solution de Philippe, et tu n'as pas besoin de mettre de .htacces dans le repertoire fichier car il n'est pas accessible via le WEB.
Après vérifie simplement que tu as les bons droits (lecture, execution ? ) sur le répertoire et sur les fichiers.
ton problème viens peut etre de la
Hors ligne
Je confirme, ça marche avec des jpeg (enfin, je n'utilise pas des readfile, mais des file_get_content, mais je pense que c'est pareil...)
Philippe
Hors ligne
salut
la solution est impeccable, d'ailleurs je la mets en oeuvre, elle fonctionne bien, un readfile pour un pdf c'est bon, cependant j'ai dans une page un album photo a mettre, ces 10 photographies (par exemple) sont dans des div avec un joli cadre et tout mais je vois pas comment faire ça si je ne mets pas mes photos au niveau d'un repertoire public, peut être que je peux le faire à travers un readfile du genre :
foreach($tFichier as $i => $Fichier) { echo "<div id="dPhoto_$i"><![CDATA[".readfile($Fichier)."]]></div>"; }
vous voyez mon interrogation ?
la seule façon que j'ai trouver de faire c'est des iframe avec dans chaque iframe des readfile, j'ai pas l'impression que c'est bien propre tout ça, voilà, encore merci de vos réponses
Dernière modification par capharnaeum (26-07-2007 11:34:48)
Hors ligne
la photo ne doit pas arriver dans le code html. Ca doit être une page à part :
foreach($tFichier as $i => $Fichier) { echo "<div id="dPhoto_$i"><img src="http://monsite/photo/$i"></div>"; }
où ton URL http://monsite/photo/$i renvoie la photo elle même (à grand coup de header et de readfile).
A+, Philippe
Hors ligne
je te remercie mille fois, je suis passé à côté de ça depuis tellement longtemps ...
ps , je suppose que c'est la même avec les css et js ?
Hors ligne
idem pour des CSS ou des JS, par contre, je n'ai jamais eu besoin de protéger une CSS. En termes de perfs, c'est catastrophique par rapport à un fichier renvoyé directement par apache, ne t'amuse pas à tout protéger si ça n'est pas nécessaire.
Après je te laisse voir en fonction de ton appli
A+, Philippe
Hors ligne
merci pour ce conseil, je vais laisser les css au niveau public
Hors ligne