Comment définir le nom du fichier de réponse sans forcer la boîte de dialog de sauvegarde

Je renvoie un stream dans une réponse définissant l’en-tête de type de contenu approprié. Le comportement que je recherche est le suivant:

  • Si le navigateur est capable de rendre le contenu du type de contenu donné, il devrait l’afficher dans la fenêtre du navigateur.

  • Si le navigateur ne sait pas comment rendre le contenu, il devrait alors afficher la boîte de dialog saveas dans laquelle le nom du fichier doit figurer dans la réponse.

Le problème que si je mets en place l’en-tête Content-Disposition avec:

“pièce jointe; filename =” myfile.txt “”

le navigateur affichera toujours le dialog de sauvegarde.

Si je ne définis pas le contenu-disposition, le nom de fichier utilisé dans la boîte de dialog de sauvegarde est celui de l’URL qui ne fonctionne pas dans mon cas.

J’ai également essayé de définir le Content-Disposition sur inline mais le résultat est le même.

La manière correcte pourrait être:

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

Je ne sais pas si c’est possible par défaut. Par souci de sécurité, le navigateur n’envoie pas tous les types de contenu qu’il peut gérer, mais seulement 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.