IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[FTP] Faire télécharger un fichier via un script PHP


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2006
    Messages : 70
    Points : 57
    Points
    57
    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!

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  3. #3
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2006
    Messages : 70
    Points : 57
    Points
    57
    Par défaut
    C'est ce que j'ai fait !

    Merci à toi pour ton aide gloubi .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 23/08/2014, 13h12
  2. Serveur FTP pour télécharger des fichiers
    Par momedalhouma dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 28/03/2013, 09h11
  3. Faire télécharger un fichier en changeant le nom
    Par TrAsHeR dans le forum Langage
    Réponses: 1
    Dernier message: 21/09/2012, 10h18
  4. Réponses: 4
    Dernier message: 22/02/2008, 12h43
  5. Réponses: 1
    Dernier message: 25/10/2007, 13h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo