web-dev-qa-db-fra.com

Comment définir le nom du fichier de réponse sans forcer le dialogue "Enregistrer sous"

Je retourne un flux dans une réponse en définissant l'en-tête content-type Approprié. Le comportement que je recherche est le suivant:

  • Si le navigateur est capable de restituer le contenu du type de contenu donné, il doit l'afficher dans la fenêtre du navigateur.

  • Si le navigateur ne sait pas comment afficher le contenu, il doit alors afficher la boîte de dialogue "Enregistrer sous" dans laquelle le nom du fichier doit être celui fourni dans la réponse.

Le problème est que si je définis l'en-tête Content-Disposition Avec:

"attachment; filename =" myfile.txt ""

le navigateur affichera toujours la boîte de dialogue "enregistrer sous".

Si je ne définis pas Content-Disposition, Le nom de fichier utilisé dans la boîte de dialogue "Enregistrer sous" est celui de l'URL qui ne fonctionne pas dans mon cas.

J'ai aussi essayé de régler Content-Disposition Sur inline mais le résultat est le même.

108
Hugo Palma

La manière correcte pourrait être:

Content-Disposition: inline; filename="myfile.txt"

159
Patonza

Je ne sais pas si c'est possible par défaut. Pour des raisons de sécurité, les navigateurs n'envoient pas tous les types de contenu qu'ils peuvent gérer, mais juste quelques Accept-Encoding, ce qui n’aide pas beaucoup dans votre scénario.

Vous pouvez peut-être demander à votre utilisateur ce qu'il préfère et stocker ces informations dans son profil.

2
Rubens Farias