Non.
Le type de contenu doit être celui qu'il est connu, si vous le savez. application/octet-stream
est défini comme "données binaires arbitraires" dans la RFC 2046, et il y a ici un chevauchement certain qui est approprié pour les entités dont le seul but est d'être enregistré sur le disque, et à partir de ce moment, en dehors de tout ce qui est "Webby". Ou de le regarder d'une autre direction; la seule chose que l'on peut faire en toute sécurité avec application / octet-stream est de l'enregistrer dans un fichier et d'espérer que quelqu'un d'autre sait à quoi il sert.
Vous pouvez combiner l'utilisation de Content-Disposition
avec d'autres types de contenu, comme image/png
ou même text/html
pour indiquer que vous souhaitez enregistrer plutôt que d'afficher. Auparavant, certains navigateurs l'ignoraient dans le cas de text/html
mais je pense que c'était il y a longtemps à ce stade (et je vais bientôt me coucher donc je ne vais pas commencer à tester tout un tas de navigateurs en ce moment, peut-être plus tard).
La RFC 2616 mentionne également la possibilité de jetons d'extension, et de nos jours la plupart des navigateurs reconnaissent inline
que vous voulez que l'entité soit affichée si possible (c'est-à-dire, si c'est un type que le navigateur sait afficher, sinon il n'a pas le choix en la matière) . C'est bien sûr le comportement par défaut de toute façon, mais cela signifie que vous pouvez inclure la filename
partie de l'en-tête, que les navigateurs utiliseront (peut-être avec quelques ajustements pour que les extensions de fichier correspondent aux normes du système local pour le type de contenu en question, peut-être pas) comme suggestion si l'utilisateur essaie d'enregistrer.
Par conséquent:
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="picture.png"
Signifie "Je ne sais pas de quoi il s'agit. Veuillez l'enregistrer en tant que fichier, de préférence nommé picture.png".
Content-Type: image/png
Content-Disposition: attachment; filename="picture.png"
Signifie "Ceci est une image PNG. Veuillez l'enregistrer en tant que fichier, de préférence nommé picture.png".
Content-Type: image/png
Content-Disposition: inline; filename="picture.png"
Signifie "Ceci est une image PNG. Veuillez l'afficher à moins que vous ne sachiez pas comment afficher les images PNG. Sinon, ou si l'utilisateur choisit de l'enregistrer, nous recommandons le nom picture.png pour le fichier sous lequel vous l'enregistrez".
Parmi les navigateurs qui reconnaissent que inline
certains l’utiliseraient toujours, tandis que d’autres l’utiliseraient si l’utilisateur avait sélectionné «enregistrer le lien sous» mais pas s’ils avaient sélectionné «enregistrer» lors de la visualisation (ou du moins IE était comme ça, il peut avoir changé il y a quelques années).
attachment
pourrait être considéré comme «préférable de ne pas afficher cela vous-même» alorsinline
que «préférable de l'afficher vous-même si vous le pouvez». Dans les deux cas, la plupart des navigateurs utiliseront la valeur du nom de fichier comme nom suggéré du fichier, mais les utilisateurs peuvent toujours le remplacer.