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 :

Forcer le téléchargement d'un fichier CSV


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 142
    Points : 77
    Points
    77
    Par défaut Forcer le téléchargement d'un fichier CSV
    Bonjour,

    Je souhaite permettre de télécharger un fichier CSV. Mon soucis est que lorsque je clique sur le lien, le contenu du fichier s'affiche sur une page Web. J'ai bien vu qu'il était possible de forcer le téléchargement du fichier mais je n'arrive pas à faire fonctionner les scripts récupérés sur le Web ou même celui de la FAQ du site.


    Dans le cas présent, j'ai un lien vers une page php de téléchargement qui contient :

    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
    <?php
    $full_path = './tmp/export/affaires/export.csv';
    $file_name = 'export.csv';
     
    ini_set('zlib.output_compression', 0);
    $date = gmdate(DATE_RFC1123);
     
    header('Pragma: public');
    header('Cache-Control: must-revalidate, pre-check=0, post-check=0, max-age=0');
     
    header('Content-Tranfer-Encoding: none');
    header('Content-Length: '.filesize($full_path));
    header('Content-MD5: '.base64_encode(md5_file($full_path)));
    header('Content-Type: application/octetstream; name="'.$file_name.'"');
    header('Content-Disposition: attachment; filename="'.$file_name.'"');
     
    header('Date: '.$date);
    header('Expires: '.gmdate(DATE_RFC1123, time()+1));
    header('Last-Modified: '.gmdate(DATE_RFC1123, filemtime($full_path)));
     
    readfile($full_path);
    exit; 
    ?>
    Lorsque l'utilisateur arrive sur cette page, le téléchargement se lance bien (un peu long étrangement). Mais le fichier est vide.
    J'ai beaucoup de mal à comprendre pourquoi cela ne fonctionne pas.

    Quelqu'un peut-il me décoincer ?

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    met le Content-Type en application/force-download

  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 142
    Points : 77
    Points
    77
    Par défaut
    Super, merci !

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

Discussions similaires

  1. Forcer le téléchargement d'un fichier CSV
    Par the_tiger85 dans le forum Langage
    Réponses: 1
    Dernier message: 09/04/2013, 13h46
  2. forcer le téléchargement d'un fichier csv
    Par nelbardi dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 21/07/2009, 16h15
  3. Réponses: 4
    Dernier message: 13/06/2007, 15h27
  4. Réponses: 2
    Dernier message: 30/05/2006, 15h07
  5. [Configuration] problème pour forcer le téléchargement d'un fichier
    Par All Bran dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 02/01/2006, 16h23

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