Firefox et-tête Content-Disposition
J'ai un problème avec un nom de la pièce jointe. Lorsque j'appelle le site sur google chrome, il renvoie le fichier avec le bon nom et l'extension. Je l'ai testé avec internet explorer et ça marche très bien aussi. Le problème réside uniquement avec Firefox. J'appelle le site et il retourne le premier mot sur le titre du fichier et pas d'extension.
Par exemple, si je voulais un fichier appelé "Mon report.docx" il s'avère un fichier appelé "Mon". J'ai Googlé autour et il s'avère que c'est un problème commun avec les gens, car les navigateurs lire les en-têtes différemment. Ils ont dit que la solution est de citer le nom de fichier:
Content-Disposition: attachment; filename=My Report.docx
est maintenant: (notez les guillemets)
Content-Disposition: attachment; filename="My Report.docx"
Toutefois, cela ne fonctionne pas pour moi.
Sur chrome il est revenu "Mon Report.docx" (avec les guillemets). Firefox retourné une drôle de fichier qui a l'extension correct et un nom propre, et pas de guillemets mais il n'a pas pu être exécutée. C'était la bonne taille du fichier, la bonne extension, et le bon nom mais il n'a pas pu être exécutée. Aussi, il retourne un espace avant et après le nom de fichier.
Si vous vous demandez pourquoi votre Firefox est ignorant cet en-tête, vérifiez si vous avez le
InlineDisposition
addon installé: c'est un excellent addon écrit spécifiquement pour désactiver Content-Disposition
forcer un téléchargement, et il est facile d'oublier quand on fait du développement web.Les guillemets doubles travaillé dans IE, Chrome et FireFox pour moi, en utilisant les dernières versions.
OriginalL'auteur Garrett R | 2012-02-06
Vous devez vous connecter pour publier un commentaire.
Cela devrait fonctionner comme prévu, voici un autre Osq avec le même problème:
et aussi la Mozilla page (je suppose que vous avez été le référencement de celui-ci):
Je ne connais pas les spécificités de votre côté serveur de code, mais voici quelques choses à confirmer /essayer:
wget
oucurl
à partir de la ligne de commande ou quelque chose comme ça.Content-Type
en-tête correctement?.png
ou un.xls
? En fait, probablement le plus simple serait d'essayer un fichier de texte brut (text/plain
), puis à partir de là.Espère que cette aide.
Bon alors j'ai compris de quoi il s'utilise avec tous les fous de chagrin. C'est parce que je suis en utilisant une variable comme nom. Mes codes écrit: $nom2 = "filename="."$nom"; header('Content-Disposition: attachment; '.$nom2); Il traite le "$" dans la variable comme un espace quand il est traité par le serveur. Je suis arrivé à trouver un moyen de by-pass.... Je n'ai aucune idée si c'est encore possible -.-
Cool, content que ça a fonctionné pour vous!
OriginalL'auteur icyrock.com
Je sais que c'est une très vieille question, mais je viens d'avoir le même problème. La solution est soit de
Puisque vous avez déjà essayé 2, vous pouvez essayer d'utiliser 1 et de voir comment cela fonctionne.
Habituellement j'utilise la
ContentDisposition
classe pour générer l'en-tête pour moi:Espère que cette aide.
OriginalL'auteur Asad Saeeduddin