Content-disposition er en utvidelse av MIME-protokollen, som instruerer MIME-brukeragenten til å vise vedlagte filer. Når Internet Explorer mottar headeren, aktiverer den filnedlastingsdialogboksen, og filnavnboksen fylles automatisk ut med filnavnet som er spesifisert i headeren. (Merk at dette skyldes design; Du kan ikke bruke denne funksjonen til å lagre et dokument på brukerens datamaskin uten å spørre brukeren hvor det skal lagres. )
Når serveren sender en fil til klientnettleseren, hvis det er en filtype som støttes av nettleseren, vil den vanligvis åpnes som standard via nettleseren, som txt, jpg osv., som vises direkte i nettleseren. Hvis brukeren trenger å bli bedt om å lagre, er det nødvendig å bruke Content-Disposition for å behandle den, nøkkelen er å legge til vedlegg:
Response.AppendHeader("Innhold-Disposisjon","vedlegg; filename=FileName.txt");
Merk: Dette vil be deg lagre eller åpne, og selv om du velger å åpne det, vil det åpne det med det tilhørende programmet som Notepad, i stedet for at IE åpner det direkte.
Innholdsdisposisjon er å oppgi et standard filnavn når brukeren ønsker å lagre det forespurte innholdet som en fil. De spesifikke definisjonene er som følger:
innhold-disposisjon = "Innhold-disposisjon" ":"
Disposisjonstype *( ";" Disposisjon-Parm )
disposisjonstype = "tilknytning" | disp-utvidelse-token
disposition-parm = filnavn-parm | disp-utvidelse-parm
filnavn-parm = "filnavn" "=" sitat-streng
disp-extension-token = token
disp-extension-parm = token "=" ( token | sitat-streng )
Så vi kan se konkrete eksempler fra det ovennevnte:
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”
Selvfølgelig kan filnavnparameteren inneholde stiinformasjon, men User-Agnet vil ignorere denne informasjonen og kun bruke den siste delen av stiinformasjonen som filnavn. Hvis du bruker denne headeren i responstype-applikasjonen/oktettstrømmen, betyr det at du ikke vil vise innholdet direkte, men en "fil nedlasting"-dialog vil dukke opp, og da er det opp til deg å bestemme om du vil "åpne" eller "lagre".
Notater:
1. Når du bruker Content-Disposition i koden for å sikre at nettleseren åpner nedlastingsdialogen. response.addHeader("Innhold-Disposisjon","vedlegg"); Sørg for at du ikke har gjort noe med å deaktivere nettleser-caching. Som følger:
response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "No-cache"); response.setDateHeader ("utløper", 0);
|