Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/06/2006, 21h10   #1
Nouveau Membre du Club
 
Inscription : juillet 2005
Messages : 64
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 64
Points : 32
Points : 32
Par défaut Telecharger un fichier hors du serveur web

Bonjour,

J'aurai aimé savoir si il est possible de faire accéder le visiteur à un fichier qui n'est pas contenu dans le repertoire du serveur web.
Par exemple si mon serveur web pointe sur "C:\PagesWeb" pouvoir proposer le telechargement d'un fichier situer dans "C:\".

Merci pour toutes reponses.
ChrOnOs
ChrOnOs83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2006, 21h14   #2
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
Il me semble que PHP peut aller chercher n'importe quel fichier sur le FS, si open_basedir n'est pas défini.
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2006, 21h24   #3
Nouveau Membre du Club
 
Inscription : juillet 2005
Messages : 64
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 64
Points : 32
Points : 32
Oui il me semble aussi puisqu'il est possible d'éditer un fichier situé sur le C:\ par exemple.
Il faudrait en quelque sorte que le script php s'occupe du telechargement...
En realité je suis vraiment perdu... Si quelqu'un a une idée...

++
ChrOnOs83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2006, 21h29   #4
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
Voilà comment je fais, avec $filename initialisé au chemin du fichier.

Code :
1
2
3
4
5
6
$fileSize = filesize($filename);
 
header("Content-Type: application/pdf"); // dans mon cas c'est un PDF
header("Content-Length: $fileSize");
header("Content-Transfer-Encoding: binary"); // idem, ça peut être différent pour toi
readfile($filename);
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2006, 21h45   #5
Nouveau Membre du Club
 
Inscription : juillet 2005
Messages : 64
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 64
Points : 32
Points : 32
Merci pour ton aide Eusebius!!
Grace a toi j'ai trouver une répnonse toute faite a mon problème!! C'est limite trop facile...

Bref au cas ou ca peut aider:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 <?php
 
// on essaie de reconnaitre l'extension pour que le téléchargement corresponde au type de fichier afin d'éviter les erreurs de corruptions
 
switch(strrchr(basename($Fichier_a_telecharger), ".")) {
 
case ".gz": $type = "application/x-gzip"; break;
case ".tgz": $type = "application/x-gzip"; break;
case ".zip": $type = "application/zip"; break;
case ".pdf": $type = "application/pdf"; break;
case ".png": $type = "image/png"; break;
case ".gif": $type = "image/gif"; break;
case ".jpg": $type = "image/jpeg"; break;
case ".txt": $type = "text/plain"; break;
case ".htm": $type = "text/html"; break;
case ".html": $type = "text/html"; break;
default: $type = "application/octet-stream"; break;
 
}
 
header("Content-disposition: attachment; filename=$Fichier_a_telecharger");
header("Content-Type: application/force-download");
header("Content-Transfer-Encoding: $type\n"); // Surtout ne pas enlever le \n
header("Content-Length: ".filesize($chemin . $Fichier_a_telecharger));
header("Pragma: no-cache");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public");
header("Expires: 0");
readfile($chemin . $Fichier_a_telecharger);
?>
Bonne continuation
++
ChrOnOs83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h53.


 
 
 
 
Partenaires

Hébergement Web