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

PHP & Base de données Discussion :

PHP download fichier


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Inscrit en
    Août 2007
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 176
    Par défaut PHP download fichier
    Bonjour,

    Je souhaite télécharger un fichier depuis un répertoire /tmp ms ça ne fonctionne pas.

    Voilà :
    Je fais une extraction depuis ma base dans /tmp/file.txt.
    Le fichier existe présent dans le répertoire /tmp.
    Ensuite depuis ma page web, je souhaite récupérer ce fichier et l'enregistrer sur mon bureau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $tmp=chdir('/tmp/');
    echo "<a href='enquete.txt'>telecharger</a>";
    Qd je clique sur mon lien, je me retrouve tjrs le répertoire de ma page au-lieu de /tmp.
    Peut-etre que j'ai oublié quelque chose d'important.
    Vous aurez un solution ?

  2. #2
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Bonjour,

    C pas plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $tmp=chdir('tmp');

  3. #3
    Membre confirmé
    Inscrit en
    Août 2007
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 176
    Par défaut PHP download fichier
    Non, c'est bien Je viens d'essayer de supprimer mon fichier et ça fonctionne avec

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Lorsque tu cliques sur le lien, tu te trouves dans la page HTML, la notion de dossier courant pour PHP n'a donc plus de sens, étant donné que le script a déjà fini de s'exécuter.

    Il faut donc que tu écrives ton lien hypertexte de façon à ce qu'il trouve tout seul :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    echo "<a href='/tmp/enquete.txt'>telecharger</a>";
     
    //tu veux éventuellement récupérer le dossier courant de php et l'inscrire dans ton lien
    echo '<a href="'.getcwd().'/enquete.txt">telecharger</a>';
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre confirmé
    Inscrit en
    Août 2007
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 176
    Par défaut PHP download fichier
    C'est bcp mieux.
    Dans la barre d'adresse, je vois "serveur/tmp/enquete.txt".
    Mais j'ai l'erreur 404 ds IE.

    Merci de votre aide,

  6. #6
    Membre Expert Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Par défaut
    quel répertoire est réglé comme la racine web dans le serveur HTTP ?

  7. #7
    Membre confirmé
    Inscrit en
    Août 2007
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 176
    Par défaut PHP download fichier
    Le répertoire "usr/local/www/enquete"

  8. #8
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Et alors est ce que le chemin:
    "usr/local/www/enquete/tmp/file.txt" est ok

    C quoi le chemin complet de file.txt

  9. #9
    Membre confirmé
    Inscrit en
    Août 2007
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 176
    Par défaut PHP download fichier
    Merci, j'ai compris. j'exportais le fichier ds le mauvais répertoire /tmp.

    Par contre, le fichier s'ouvre ds IE alorsque je voudrais qu'il me propose si je souhaite l'enregistrer ou l'ouvrir

  10. #10
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Je te donne le code car je viens de le faire ya peu de temps ...

    Tu appeles donc ce php avec un lien par ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    30
     
    <?php
    // Ce download est lancé à partir d'un lien tel que:
    // <a href="download.php?filename=fileToPrint&dossier=dossierToPrint">Télécharger fichier</a>
    // ou header("Location: http://$host$uri/"."download.php?filename=fileToPrint&dossier=dossierToPrint");
     
        // Récupération nom de fichier et chemin).
        if( isset( $_GET['filename'] ) ) $filename = $_GET['filename'];
        if( isset( $_GET['dossier'] ) ) $dossier = $_GET['dossier'];
     
        // Modification de l'application utilisée en fonction du type de fichier
        $ext = strrchr( $filename, "." );
        switch( $ext ) {
            case ".zip": $type = "application/zip"; break;
            case ".txt": $type = "text/plain"; break;
            case ".pdf": $type = "application/pdf"; break;
            default: $type = "application/octet-stream"; break;
        }
     
        // Constitution de l'header suivant le type
        header("Content-Description: File Transfer");
        header("Content-Type: $type\n");
        header("Content-Transfer-Encoding: binary");
        header("Content-disposition: attachment; filename=$filename");
        header("Content-Length: ".filesize( $dossier.$filename ) );
     
        // Lecture et Affichage
        readfile( $dossier.$filename );
     
    ?>

  11. #11
    Membre confirmé
    Inscrit en
    Août 2007
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 176
    Par défaut PHP download fichier
    J'ai créé un fichier download.php
    J'ai recopié le code ci-dessus.

    Dans le fichier de lien, j'ai ajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<a href=download.php?filename=enquete.txt&dossier=/usr/local/www/enquete/tmp/>Télécharger fichier</a>";
    Et ça m'ouvre un fichier enquete.txt vierge.

  12. #12
    Membre confirmé
    Inscrit en
    Août 2007
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 176
    Par défaut PHP download fichier
    C'est bon ça fonctionne pas

    Merci à tous

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

Discussions similaires

  1. [plugin PHP] Download systematique du fichier ouvert
    Par slim dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 03/08/2006, 11h39
  2. [PHP-JS] php et fichier
    Par marion782 dans le forum Langage
    Réponses: 8
    Dernier message: 06/12/2005, 00h32
  3. download fichier avec espace dans le nom
    Par cb68 dans le forum Langage
    Réponses: 8
    Dernier message: 23/11/2005, 10h00
  4. Passer les variables de fichier.php en fichier.php
    Par Furius dans le forum Langage
    Réponses: 4
    Dernier message: 20/11/2005, 22h05
  5. [XML] [PHP] Sauvegarde fichier xml
    Par ribrok dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 11/10/2005, 16h58

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