[PHP] Forcer le download - Problème avec IE en remote

Forcer le download - Problème avec IE en remote [PHP] - PHP - Programmation

Marsh Posté le 18-03-2008 à 04:04:14    

Yo !
 
J'me bats depuis une journée avec un pauvre truc de daube et ça commence à me saouler grave :D
 
Je force le d/l d'un fichier excel. En local, tout fonctionne bien, FF ou IE.
Dès que je fous les fichiers sur le serveur, ça marche bien avec FF (comme d'hab quoi), mais IE me fait des misères (comme d'hab quoi) :sarcastic:
La popup s'ouvre, mais elle se ferme automatiquement. Et c'est pas un problème de popup-blocker, vu que le site est autorisé.
Si je mets un pauvre "echo 'blabla';" dans mon fichier php de d/l, la popup s'ouvre et affiche le texte, mais dès que je fous des headers, elle se ferme automatiquement sans m'ouvrir la dialog box de d/l :/
Par contre, si j'tape directement l'adresse du fichier php de d/l, la dialog box s'ouvre et j'peux télécharger correctement mon fichier.
 
Bref, j'y capte rien :??:
D'où vient ce problème de fermeture automatique de popup par IE7 ?  
 
Si ça peut aider, le code du dl.php :
 

Code :
  1. <?php
  2. $filename = '../appFiles/'. $_GET['filename'];
  3. if ( substr(strrchr($filename, '.'), 1) == 'xls' )
  4. {
  5.  header("Pragma: public" );
  6.  header("Expires: 0" );
  7.  header("Cache-Control: must-revalidate, post-check=0, pre-check=0" );
  8.  header("Cache-Control: private",false);
  9.  header("Content-Type: application/vnd.ms-excel" );
  10.  header("Content-Disposition: attachment; filename=\"".basename($filename)."\";" );
  11.  header("Content-Transfer-Encoding: binary" );
  12.  header("Content-Length: ".@filesize($filename));
  13.  set_time_limit(0);
  14.  @readfile("$filename" ) or die("File not found." );
  15. }
  16. ?>


 
Merci !

Reply

Marsh Posté le 18-03-2008 à 04:04:14   

Reply

Marsh Posté le 18-03-2008 à 06:02:18    

Pour info, le serveur est Apache sur les deux machines. En local ça tourne sous Windows, le serveur sous linux (CentOS).

 

J'ai déjà perdu assez de temps avec cette merde d'IE, donc j'ai viré le code javascript qui m'ouvre ma dl.php page avec les bons paramètres, et à la place je fais un lien direct vers le fichier. Et oh miracle, ça marche. Mais n'empêche que c'est toujours frustrant de se battre contre un putain de browser de merde qui fait chier à plein temps.

 

Mais bon, au final, je sais toujours pas d'où vient le problème. Si quelqu'un a une idée, j'suis grave preneur !

 


Message édité par godbout le 18-03-2008 à 13:18:56
Reply

Marsh Posté le 18-03-2008 à 13:19:04    

little up!

Reply

Marsh Posté le 18-03-2008 à 21:48:37    

salut perso j'utilise
header("Content-disposition:attachment;filename=RecapClients18032008.xls" );
header("Content-Type:application/force-download" );
 
jamais personne ne s'en est plaint :D


---------------
Photos Panoramiques Montagnes Haute Savoie
Reply

Marsh Posté le 19-03-2008 à 07:02:18    

Je crois que j'ai déjà essayé, mais j'ai essayé tellement de trucs que j'suis plus sûr de rien :D
 
Donc j'vais retenter, et j'tiens au courant [:ocube]

Reply

Marsh Posté le 19-03-2008 à 08:31:56    

Marche pas :/
 
Même problème, marche impeccable sous FF, en local ou sur le serveur, mais ça foire avec IE sur le serveur (mais ça marche en local).
La popup s'ouvre et se ferme sans me balancer la Save dialog :/
 
Quel problème de merde :D
 
Pas d'autre idée ?
Un problème du coté du serveur peut-être ?

Reply

Marsh Posté le 19-03-2008 à 12:08:19    

Bon, en changeant le code pour que la fenetre ne s'ouvre pas automatiquement mais avec un click, ça marche. Donc c'est cette merde d'IE qui me bloque la popup alors que le popup-blocker est désactivé. Bravo [:dawao]

Reply

Marsh Posté le 19-03-2008 à 12:52:57    

Lol t'aurais dû essayer une formule try,catch pour la popup
ou ouvrir lien dans nouvelle fenêtre puis window.close :D
 
"Je crois que j'ai déjà essayé, mais j'ai essayé tellement de trucs que j'suis plus sûr de rien", la méthode vient avec le temps :)


---------------
Photos Panoramiques Montagnes Haute Savoie
Reply

Marsh Posté le 19-03-2008 à 13:02:13    

Ouais, la méthode vient avec le temps, c'est sûr, mais quand c'est pas un problème de conception, mais un problème de browser de merde, c'est toujours rageant :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed