2009-09-24 8 views
0

Je génère un côté serveur de fichiers et je veux que le client l'ouvre automatiquement: c'est un fichier XLSX. Firefox ouvre juste le fichier et je vois le contenu binaire du fichier XLSX dans le navigateur, mais je veux qu'il soit ouvert via une boîte de dialogue Enregistrer sous ....Firefox: Ouvrir le fichier XLSX n'enregistrant pas le fichier .butn binaire d'ouverture

Il fonctionne très bien dans Chrome avec le même code (il enregistre), mais pas Firefox ...

Toutes les idées?

Répondre

4

Have a look at this - Php exec and return binary

Envoyez-vous les en-têtes appropriés ?? quelque chose comme

header("Content-Type: application/octet-stream"); 
header("Content-Disposition: attachment; filename=\"yourfile.xlsx\""); 

MISE À JOUR

header('Content-Type: application/xls'); 
header('Content-Disposition: attachment; filename=example.xlsx'); 
header('Pragma: no-cache'); 
echo file_get_contents("/path/to/yourfile.xlsx"); 

MISE À JOUR 2

chiffrier types MIME

application/vnd.ms-excel [official] 
application/msexcel 
application/x-msexcel 
application/x-ms-excel 
application/vnd.ms-excel 
application/x-excel 
application/x-dos_ms_excel 
application/xls 

MISE A JOUR 3

En ce qui concerne votre problème javascript avez-vous essayer d'utiliser

location.href instead of window.open ?? 
+0

le fichier est gen déjà installé ... Je veux que l'utilisateur puisse ouvrir le fichier qui fera apparaître un dialogue Enregistrer sous. Mais quand j'ouvre l'URL du fichier XLSX avec window.open, il montre réellement le binaire du dossier dans le navigateur. – Amadeus45

+0

Vérifiez mises à jour ... – TigerTiger

+0

La première mise à jour a fait le travail ... merci! – Amadeus45

0

Vous devez vous assurer que vous envoyez ce type de mime que l'en-tête Content-Type: -

application/vnd.openxmlformats -officedocument.spreadsheetml.sheet

vous devez mapper l'extension .xslx à ce type MIME sur le serveur

Questions connexes