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 :

Pb de download de fichier texte


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de shkyo
    Homme Profil pro
    Développeur Robotique - Administrateur systèmes
    Inscrit en
    Juin 2003
    Messages
    841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Robotique - Administrateur systèmes

    Informations forums :
    Inscription : Juin 2003
    Messages : 841
    Par défaut Pb de download de fichier texte
    Bonjour, je bosse avec windows xp sp2 + wamp 1.6.6 et j'ai un script qui exporte des données sous la forme d'un fichier texte directement dans le répertoire c:\wamp\www

    Jusque-là tout fonctionne, par contre je souhaite forcer (pour faire simple) le téléchargement sur le poste de celui qui se connecte, mais au lieu d'avoir un download, cela m'affiche le fichier texte dans la page web !!!

    Je vous rassure, ce n'est pas pour injecter du code malicieux , c'est une appli spécifique pour l'intranet de ma boite...

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $fichier = 'export.txt';
    $infos_fichier = array('taille' => '1000000');
     
    @ini_set('zlib.output_compression', 'Off');
    @header('Pragma: public');
    @header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
    @header('Cache-Control: must-revalidate, pre-check=0, post-check=0, max-age=0');
    @header('Content-Transfer-Encoding: none');
    @header('Content-Type: application/octetstream; charset=iso-8859-1; name="'.$fichier.'"');
    @header('Content-Disposition: attachement; filename="'.$fichier.'"');
    @header('Content-Length: '.$infos_fichier['taille']);
    readfile($fichier);
    Merci d'avance de vos suggestions...

  2. #2
    Membre expérimenté Avatar de Azazel.fr
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 170

  3. #3
    Membre éclairé Avatar de shkyo
    Homme Profil pro
    Développeur Robotique - Administrateur systèmes
    Inscrit en
    Juin 2003
    Messages
    841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Robotique - Administrateur systèmes

    Informations forums :
    Inscription : Juin 2003
    Messages : 841
    Par défaut
    Je suis aller voir ce lien, j'ai donc d'un côté un script "download.php" que voici (oui oui c'est du copier/coller...) :
    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
    <?php
    define('CFG_SYSTEM_FILENAME', 'export.txt');
    define('CFG_SEND_FILENAME', CFG_SYSTEM_FILENAME);
     
    define('CFG_FILESIZE', filesize(CFG_SYSTEM_FILENAME));
    define('CFG_FILE_MD5', md5_file(CFG_SYSTEM_FILENAME));
    define('CFG_DATE_FORMAT', 'D, d M Y H:i:s');
     
    error_reporting(0);
    ini_set('zlib.output_compression', 0);
     
    header('Pragma: public');
    header('Last-Modified: '.gmdate(CFG_DATE_FORMAT).' GMT');
    header('Cache-Control: must-revalidate, pre-check=0, post-check=0, max-age=0');
     
    header('Content-Tranfer-Encoding: none');
    header('Content-Length: '.CFG_FILESIZE);
    header('Content-MD5: '.base64_encode(CFG_FILE_MD5));
    header('Content-Type: application/octetstream; name="'.CFG_SEND_FILENAME.'"');
    header('Content-Disposition: attachement; filename="'.CFG_SEND_FILENAME.'"');
     
    header('Date: '.gmdate(CFG_DATE_FORMAT, time()).' GMT');
    header('Expires: '.gmdate(CFG_DATE_FORMAT, time()+1).' GMT');
    header('Last-Modified: '.gmdate(CFG_DATE_FORMAT, time()).' GMT');
    ?>
    et de l'autre j'ai ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<a href=\"download.php\">Download...</a>";
    Quand je clique sur le lien, cela ouvre une page vide mais à part ça, il ne se passe rien !!!
    Normalement, la boite de dialogue "Enregistrer..." devrait apparaître, mais non, rien du tout, même pas d'erreur...

    J'ai oublié quelquechose ou quoi ???

  4. #4
    Membre éclairé Avatar de shkyo
    Homme Profil pro
    Développeur Robotique - Administrateur systèmes
    Inscrit en
    Juin 2003
    Messages
    841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Robotique - Administrateur systèmes

    Informations forums :
    Inscription : Juin 2003
    Messages : 841
    Par défaut
    Quelques précisions de plus, je fais mes tests sur un IE7 (j'ai pas le choix, c'est ce qu'il y a sur tous les postes de la boite...), par contre, j'ai un IE6 qui traine encore sur un de mes pc et le même code fait s'ouvrir un bloc-note vide qui a comme nom celui du fichier texte que je veux faire télécharger !!!

    C'est louche...

  5. #5
    Membre éclairé Avatar de shkyo
    Homme Profil pro
    Développeur Robotique - Administrateur systèmes
    Inscrit en
    Juin 2003
    Messages
    841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Robotique - Administrateur systèmes

    Informations forums :
    Inscription : Juin 2003
    Messages : 841
    Par défaut
    Je viens de tester à l'instant avec un FireFox 2, cela fonctionne parfaitement !!!
    ARGH !!!!!

    Comment je peux faire pour que cela fonctionne sur IE7 ??

  6. #6
    Membre éclairé Avatar de shkyo
    Homme Profil pro
    Développeur Robotique - Administrateur systèmes
    Inscrit en
    Juin 2003
    Messages
    841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Robotique - Administrateur systèmes

    Informations forums :
    Inscription : Juin 2003
    Messages : 841
    Par défaut
    CA MARCHE !!! et sur IE6, IE7 et FireFox2...

    Voici la solution qui va bien (merci php.net !) :
    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
    $mm_type="application/octet-stream";
    $fichier = 'export.txt';
     
    header("Cache-Control: public, must-revalidate");
    header("Pragma: hack");
    header("Content-Type: " . $mm_type);
    header("Content-Length: " .(string)(filesize($fichier)) );
    header('Content-Disposition: attachment; filename="'.basename($fichier).'"');
    header("Content-Transfer-Encoding: binary\n");
     
    $fp = fopen($fichier, 'rb');
    $buffer = fread($fp, filesize($fichier));
    fclose ($fp);
     
    print $buffer;
    Voilu, j'espère que cela aidera d'autre personnes !

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

Discussions similaires

  1. Comment downloader un fichier xml qui contient le text d'un InputTextArea ?
    Par Benusko dans le forum Développement Web en Java
    Réponses: 4
    Dernier message: 13/11/2014, 09h30
  2. Download et lecture de fichier texte
    Par anadoncamille dans le forum Développement Web en Java
    Réponses: 4
    Dernier message: 31/01/2009, 14h36
  3. [VB6] Ecrire/Modifier/Effacer ds un fichier text-4 Chs/Lg
    Par Jonathan_Korvitch dans le forum VB 6 et antérieur
    Réponses: 18
    Dernier message: 24/12/2002, 18h54
  4. Importer des fichiers textes délimités
    Par Invité dans le forum Outils
    Réponses: 2
    Dernier message: 23/09/2002, 13h56
  5. Instruction pour créer un fichier text ???
    Par Soulsurfer dans le forum Langage
    Réponses: 2
    Dernier message: 06/08/2002, 11h17

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