Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/10/2006, 11h14   #1
Candidat au titre de Membre du Club
 
Inscription : juin 2005
Messages : 18
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 18
Points : 12
Points : 12
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 :
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 :
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
Rawone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2006, 09h21   #2
Candidat au titre de Membre du Club
 
Inscription : juin 2005
Messages : 18
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 18
Points : 12
Points : 12
Par défaut Solution

J'ai trouvé une solution acceptable, mais pas parfaite avec les balises

Code :
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
Rawone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2006, 10h10   #3
Candidat au titre de Membre du Club
 
Inscription : juin 2005
Messages : 18
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 18
Points : 12
Points : 12
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à
Rawone est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h36.


 
 
 
 
Partenaires

Hébergement Web