Vsebina je razširitev MIME protokola, ki MIME uporabniškemu agentu naroči, naj prikaže priložene datoteke. Ko Internet Explorer prejme glavo, aktivira pogovorno okno za prenos datoteke, in njegovo okno za ime datoteke se samodejno napolni z imenom datoteke, navedenim v glavi. (Upoštevajte, da je to posledica zasnove; Te funkcije ne morete uporabiti za shranjevanje dokumenta na uporabnikov računalnik, ne da bi uporabnika vprašali, kam ga shrani. )
Ko strežnik pošlje datoteko v brskalnik odjemalca, če gre za vrsto datoteke, ki jo brskalnik podpira, se običajno privzeto odpre v brskalniku, kot so txt, jpg itd., ki se prikažejo neposredno v brskalniku; če je uporabnik potreben poziv k shranjevanju, je treba uporabiti Content-Disposition za obdelavo, ključ je dodati prilogo:
Response.AppendHeader("Content-Disposition","attachment; filename=FileName.txt");
Opomba: To vas bo pozvalo, da shranite ali odprete, in tudi če se odločite odpreti, se bo odprlo z ustreznim programom, kot je Notepad, namesto da bi ga IE odprl neposredno.
Vsebina (Content-Disposition) pomeni, da uporabnik zagotovi privzeto ime datoteke, ko želi shraniti zahtevano vsebino kot datoteko. Natančne definicije so naslednje:
vsebina-dispozicija = "Vsebinska dispozicija" ":"
tip dispozicije *( ";" Disposition-Parm )
tip dispozicije = "navezanost" | disp-extension-token
disposition-parm = Filename-parm | Disp-Extension-Parm
Ime datoteke-parm = "ime datoteke" "=" narekovani niz
disp-extension-token = token
disp-extension-parm = token "=" ( token | narekovani niz )
Tako lahko vidimo konkretne primere iz zgoraj:
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”
Seveda lahko parameter imena datoteke vsebuje informacije o poti, vendar User-Agnet te informacije ignorira in kot ime datoteke uporabi le zadnji del poti. Če uporabite to glavo v aplikaciji/oktet-streamu tipa odziva, to pomeni, da vsebine ne želite prikazovati neposredno, vendar se bo pojavilo okno "prenos datoteke", nato pa je na vas, da se odločite, ali boste "odprli" ali "shranili".
Opombe:
1. Pri uporabi Content-Disposition v kodi, da brskalnik prikaže okno za prenos. response.addHeader("Content-Disposition","attachment"); Prepričaj se, da nisi naredil ničesar glede onemogočanja predpomnjenja brskalnika. Kot sledi:
response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "No-cache"); response.setDateHeader("poteče", 0);
|