La disposition de contenu est une extension du protocole MIME, qui ordonne à l’agent utilisateur MIME d’afficher les fichiers joints. Lorsque Internet Explorer reçoit l’en-tête, il active la boîte de dialogue de téléchargement de fichiers, et sa boîte de nom de fichier est automatiquement remplie avec le nom spécifié dans l’en-tête. (Notez que cela est causé par la conception ; Vous ne pouvez pas utiliser cette fonctionnalité pour enregistrer un document sur l’ordinateur d’un utilisateur sans lui demander où l’enregistrer. )
Lorsque le serveur envoie un fichier au navigateur client, s’il s’agit d’un type de fichier pris en charge par le navigateur, il sera généralement ouvert par défaut avec le navigateur, comme txt, jpg, etc., qui sera affiché directement dans le navigateur ; si l’utilisateur doit être invité à sauvegarder, il est nécessaire d’utiliser Content-Disposition pour le traiter, la clé est d’ajouter une pièce jointe :
Response.AppendHeader(« Content-Disposition »,"attachment ; filename=FileName.txt ») ;
Note : Cela vous demandera de sauvegarder ou d’ouvrir, et même si vous choisissez de l’ouvrir, il l’ouvrira avec le programme associé comme Notepad, au lieu d’ouvrir directement par IE.
La disposition de contenu consiste à fournir un nom de fichier par défaut lorsque l’utilisateur souhaite enregistrer le contenu demandé sous forme de fichier. Les définitions spécifiques sont les suivantes :
disposition de contenu = « disposition de contenu » « : »
type de disposition *( « ; » disposition-parm )
type-disposition-= « attachement » | jeton disp-extension-
disposition-parm = nomnom-fichier parm | disp-extension-parm
NomFichier-Parm = « Nom de Fichier » « = » Chaîne de guillemets
disp-extension-token = token
disp-extension-parm = jeton « = » ( jeton | guillemet-chaîne )
Nous pouvons donc voir des exemples précis de ce qui précède :
Cache-Control:private
Content-Disposition:attachment; filename=Index1.png
Content-Length:328462
Content-Type:image/png
Date:Fri, 14 Oct 2016 01:08:04 GMT
Server:Microsoft-IIS/8.0
X-AspNet-Version:4.0.30319
X-AspNetMvc-Version:5.2
X-Powered-By:ASP.NET
Content-Disposition: attachment; filename=“filename.xls”
Bien sûr, le paramètre de nom de fichier peut contenir des informations de chemin, mais User-Agnet ignorera ces informations et n’utilisera que la dernière partie de l’information de chemin comme nom de fichier. Si vous utilisez cet en-tête dans le type application de réponse ou le flux d’octets, cela signifie que vous ne souhaitez pas afficher le contenu directement, mais qu’une fenêtre « téléchargement de fichier » apparaîtra, et c’est à vous de décider si vous souhaitez « ouvrir » ou « enregistrer ».
Notes:
1. Lorsque vous utilisez Disposition de contenu dans le code pour vous assurer que le navigateur affiche la boîte de dialogue de téléchargement. response.addHeader (« Content-Disposition », « attachment ») ; Assurez-vous de ne rien avoir fait pour désactiver la mise en cache du navigateur. Voici :
response.setHeader(« Pragma », « No-cache ») ; response.setHeader (« Contrôle de cache », « No-cache ») ; response.setDateHeader (« Expires », 0) ;
|