Content-disposition er en udvidelse af MIME-protokollen, som instruerer MIME-brugeragenten i at vise vedhæftede filer. Når Internet Explorer modtager headeren, aktiverer den fildownload-dialogboksen, og dens filnavnsboks udfyldes automatisk med det filnavn, der er angivet i headeren. (Bemærk, at dette skyldes design; Du kan ikke bruge denne funktion til at gemme et dokument på en brugers computer uden at spørge brugeren, hvor det skal gemmes. )
Når serveren sender en fil til klientbrowseren, hvis det er en filtype, der understøttes af browseren, vil den som regel blive åbnet som standard via browseren, såsom txt, jpg osv., som vises direkte i browseren. Hvis brugeren skal bedes om at gemme, er det nødvendigt at bruge Content-Disposition til at behandle den, nøglen er at tilføje vedhæftning:
Svar.AppendHeader("Indhold-Disposition","vedhæftet; filename=FileName.txt");
Bemærk: Dette vil bede dig om at gemme eller åbne, og selv hvis du vælger at åbne det, vil det åbne det med det tilknyttede program som Notepad i stedet for IE at åbne det direkte.
Indholdsdisposition er at angive et standard filnavn, når brugeren ønsker at gemme det ønskede indhold som en fil. De specifikke definitioner er som følger:
indhold-disposition = "Indhold-disposition" ":"
Disposition-type *( ";" Disposition-Parm )
disposition-type = "tilknytning" | disp-extension-token
disposition-parm = filnavn-parm | disp-udvidelse-parm
filnavn-parm = "filnavn" "=" citeret-streng
disp-extension-token = token
disp-extension-parm = token "=" ( token | citat-streng )
Så vi kan se konkrete eksempler fra ovenstående:
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 filnavnsparameteren indeholde stiinformation, men User-Agnet vil ignorere denne information og kun bruge den sidste del af stiinformationen som filnavn. Hvis du bruger denne header i responstype-applikationen/oktetstrømmen, betyder det, at du ikke vil vise indholdet direkte, men en "fil download"-dialog vil dukke op, og så er det op til dig at beslutte, om du vil "åbne" eller "gemme".
Noter:
1. Når man bruger Content-Disposition i koden for at sikre, at browseren åbner downloaddialogen. response.addHeader("Indhold-Disposition","vedhæftning"); Sørg for, at du ikke har gjort noget ved at deaktivere browser-caching. Som følger:
response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "No-cache"); response.setDateHeader("udløber", 0);
|