Content-disposition is een uitbreiding van het MIME-protocol, die de MIME-user agent instrueert om bijgevoegde bestanden weer te geven. Wanneer Internet Explorer de header ontvangt, activeert het het dialoogvenster voor het downloaden van bestanden en wordt het bestandsnaamvak automatisch gevuld met de bestandsnaam die in de header is opgegeven. (Let op: dit wordt veroorzaakt door het ontwerp; Je kunt deze functie niet gebruiken om een document op de computer van een gebruiker op te slaan zonder te vragen waar het opgeslagen moet worden. )
Wanneer de server een bestand naar de clientbrowser stuurt, als het een bestandstype is dat door de browser wordt ondersteund, wordt het meestal standaard geopend via de browser, zoals txt, jpg, enz., die direct in de browser worden weergegeven. Als de gebruiker gevraagd moet worden om op te slaan, is het noodzakelijk om Content-Disposition te gebruiken om het te verwerken, de sleutel is om bijlagen toe te voegen:
Response.AppendHeader("Content-Disposition","bijlage;" filename=FileName.txt");
Let op: Dit zal je vragen om op te slaan of te openen, en zelfs als je ervoor kiest het te openen, opent het het met het bijbehorende programma zoals Notepad, in plaats van IE het direct te openen.
Content-Disposition is het geven van een standaard bestandsnaam wanneer de gebruiker de gevraagde inhoud als bestand wil opslaan. De specifieke definities zijn als volgt:
inhoud-dispositie = "Inhoud-Dispositie" ":"
Disposition-type *( ";" Disposition-Parm )
disposition-type = "hechting" | disp-extension-token
disposition-parm = bestandsnaam-parm | disp-extensie-parm
Bestandsnaam-Parm = "Bestandsnaam" "=" Aanhalingstekens-string
disp-extension-token = token
disp-extension-parm = token "=" ( token | quoted-string )
We kunnen dus specifieke voorbeelden zien uit het bovenstaande:
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”
Natuurlijk kan de bestandsnaamparameter padinformatie bevatten, maar User-Agnet negeert deze informatie en gebruikt alleen het laatste deel van de padinformatie als bestandsnaam. Als je deze header gebruikt in de response-type application/octet-stream, betekent dat dat je de inhoud niet direct wilt weergeven, maar er verschijnt een "file download"-dialoog, en dan is het aan jou om te beslissen of je wilt "openen" of "opslaan".
Notities:
1. Wanneer Content-Disposition in de code wordt gebruikt om ervoor te zorgen dat de browser het downloadvenster verschijnt. response.addHeader("Content-Disposition","attachment"); Zorg dat je niets hebt gedaan aan het uitschakelen van browsercaching. Als volgt:
response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "No-cache"); response.setDateHeader("Expires", 0);
|