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 :

[CSV] export CSV sous IE


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 18
    Par défaut [CSV] export CSV sous IE
    Bonjour,

    j'essaie desèspérément d'exporter un fichier CVS généré automatiquement avec PHP.

    Tout marché correctement avant la mise en place de l'HTTPS. Seulement maintenant, même si cela fonctionne sans problème sous Firefox, sous IE, j'ai le message d'erreur suivant :
    "Internet Explorer ne peut télécharger le fichier export_aff.php de <nomServeur>

    Internet Explorer n'a pu ouvrir ce site Internet. Le site Internet requis n'est pas disponible ou n'a pu être trouvé. Reessayer ultérieurement".

    J'utilise la class rs2csv de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $csv = new rs2csv(); // create a new instance of the rs2csv class.
    		$csv->set_fname($table."_".$rne.".csv"); 
    		$csv->set_ctype("application/octet-stream"); 
    		$csv->set_cdisp("attachment"); 
    		$csv->set_sep(";");
    $csv->output_csv();
    et la fonction output_csv est la suivante :

    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
     
    function output_csv() {
            if (strlen($this->_str) == 0)
                $this->display_err("Empty file");
            header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
            header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
            header("Cache-Control: no-store, no-cache, must-revalidate");
            header("Cache-Control: post-check=0, pre-check=0", false);
            header("Pragma: no-cache");
            header("Content-Length: ".strlen($this->_str));
            header("Content-type: ".$this->_ctype);
            header("Content-Disposition: ".$this->_cdisp."; filename=".$this->_fname);
            echo $this->_str;
            exit;
    }
    Sur Internet je n'ai pas trouvé la solution (juste le problème à de nombreuses reprirses) et j'ai essayé pas mal de "Content-type" différent.


    Merci d'avance

    Rawone

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 18
    Par défaut Solution
    J'ai trouvé une solution acceptable, mais pas parfaite avec les balises

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    define('CFG_DATE_FORMAT', 'D, d M Y H:i:s');
    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: '.strlen($this->_str));
    header('Content-Type: application/octetstream; name="'.$this->_fname.'"');
    header('Content-Disposition: attachment; filename="'.$this->_fname.'"');
    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');
    Cependant, il me demande désormais deux fois d'ouvrir le fichier, si je demande une ouverture, mais qu'une seule fois, si je demande une enregistrmeent du document.
    Je suis certain de n'appeler la page et la fonction qu'une seule fois.

    Si je teste sur un autre ordinateur (2000 et pas XP) ce problème n'apparaît pas mais avec un IE (sous linux) cela pose le même problème que sous XP...




    Rawone

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 18
    Par défaut
    Bien, je viens de trouver la solution définitive :

    A la place de 'attachment' dans le code précédent, il faut mettre 'inline'.

    Voilà

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

Discussions similaires

  1. [V6] Export CSV : Export en CSV tronqué !
    Par ghohm dans le forum Webi
    Réponses: 3
    Dernier message: 28/09/2009, 10h08
  2. [CSV] export csv pour lecture sur mac
    Par lodan dans le forum Langage
    Réponses: 2
    Dernier message: 24/09/2008, 16h42
  3. [CSV] Export CSV valeurs décimales
    Par Nemesis007 dans le forum Langage
    Réponses: 2
    Dernier message: 15/05/2008, 09h39
  4. [CSV] Export CSV valeurs/chaine de caractères
    Par Nemesis007 dans le forum Langage
    Réponses: 2
    Dernier message: 14/05/2008, 13h53
  5. [CSV] Export CSV avec PHP (saut de ligne)
    Par Indy80 dans le forum Langage
    Réponses: 2
    Dernier message: 10/08/2006, 16h08

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