Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
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 14/02/2008, 14h19   #1
Nouveau Membre du Club
 
Développeur Web
Inscription : février 2006
Messages : 68
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : février 2006
Messages : 68
Points : 29
Points : 29
Par défaut [FTP] Faire télécharger un fichier via un script PHP

Bonjour,

Le contexte:
Un site à accès restreint avec login/pass' membre.
Sur ce site on propose le téléchargement de document (word, pdf, ...) "confidentiel" (cad qui n'intéressent que les membres enregistré sur le site).

La problématique:
L'idée serait donc de passer par une page PHP ("telechargement.php?numero_de_fichier=x" ou "x" est l'identifiant du fichier par exemple) qui irait récupérer le fichier avec un nom codé. En base de données on aurait stocké au préalable ce nom codé, le type du fichier, son nom d'origine et tout autres infos pertinentes.
Au chargement de la page "telechargement.php?numero_de_fichier=x" on balance les "entêtes http" nécessaires, ce qui provoque le téléchargement du fichier exactement comme-ci le client avait appelé en direct depuis la barre d'adresse "machin.pdf".
Donc pas d'accès "direct" au fichier. Et l'accès à la page "telechargement.php?numero_de_fichier=x" nécessiterais d'être logé sur le site.

Mes questions:
C'est large mais: comment faire?
* est il possible de passer des "entêtes http" (via "header();") pour que le client se comporte comme lors du téléchargement direct d'un fichier PDF (ou autres)? Si oui, lesquels?
* le fichier stocké sur FTP est-il obligé de conserver son extension d'origine (le but étant qu'il soit méconnaissable et quasi inaccessible en "direct")?
* peut-on indiquer un nom de fichier "libre" (peut-être généré à la volé selon l'utilisateur qui télécharge).
* avez-vous des solutions plus pertinente que la mienne?

Merci d'avance pour votre aide!
Just est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2008, 15h25   #2
Membre expérimenté
 
Inscription : mai 2002
Messages : 673
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 673
Points : 532
Points : 532
Code :
1
2
3
4
5
6
7
$urlf = '/home/files/cvnsudqhvbfsdq.gfd';
if(file_exists($urlf))
{
   header('Content-type: application/pdf');
   header('Content-Disposition: attachment; filename="le_nom_que_je_veux.pdf"');
   readfile($urlf);
}
Je te recommande de mettre tes fichiers dans un repertoire protégé par un .htaccess qui interdise le listage des fichiers ! Voir innaccessible via http.
gloubi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2008, 13h39   #3
Nouveau Membre du Club
 
Développeur Web
Inscription : février 2006
Messages : 68
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : février 2006
Messages : 68
Points : 29
Points : 29
C'est ce que j'ai fait !

Merci à toi pour ton aide gloubi .
Just 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 19h13.


 
 
 
 
Partenaires

Hébergement Web