Content-disposition je rozšírenie protokolu MIME, ktoré inštruuje MIME používateľského agenta, aby zobrazoval priložené súbory. Keď Internet Explorer dostane hlavičku, aktivuje dialógové okno na sťahovanie súboru a jeho okno s názvom súboru sa automaticky naplní názvom súboru uvedeným v hlavičke. (Upozorňujeme, že je to spôsobené dizajnom; Túto funkciu nemôžete použiť na uloženie dokumentu do počítača používateľa bez toho, aby ste sa opýtali, kam ho má uložiť. )
Keď server odošle súbor do klientského prehliadača, ak ide o typ súboru podporovaný prehliadačom, zvyčajne sa predvolene otvorí v prehliadači, napríklad txt, jpg a podobne, ktoré sa zobrazia priamo v prehliadači. Ak je potrebné používateľa vyzvať na uloženie, je potrebné použiť Content-Disposition na jeho spracovanie, kľúčom je pridať prílohu:
Response.AppendHeader("Content-Disposition","attachment; filename=FileName.txt");
Poznámka: Toto vás vyzve na uloženie alebo otvorenie, a aj keď sa rozhodnete ho otvoriť, otvorí sa s príslušným programom, ako je Notepad, namiesto toho, aby ho IE otvoril priamo.
Content-Disposition znamená poskytnúť predvolený názov súboru, keď chce používateľ uložiť požadovaný obsah ako súbor. Konkrétne definície sú nasledovné:
content-disposition = "Content-Disposition" ":"
typ dispozície *( ";" Disposition-Parm )
typ dispozície = "pripútanie" | disp-extension-token
disposition-parm = Filename-parm | Disp-Extension-Parm
Názov súboru-parm = "názov súboru" "=" úvodzovkový reťazec
disp-extension-token = token
disp-extension-parm = token "=" ( token | úvodzovkový reťazec )
Takže môžeme vidieť konkrétne príklady z vyššie uvedeného:
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”
Samozrejme, parameter názvu súboru môže obsahovať informácie o ceste, ale User-Agnet tieto informácie ignoruje a používa len poslednú časť informácií o ceste ako názov súboru. Ak použijete túto hlavičku v type odpovede application/octet-stream, znamená to, že nechcete zobrazovať obsah priamo, ale zobrazí sa okno "stiahnutie súboru" a potom je na vás, či chcete "otvoriť" alebo "uložiť".
Poznámky:
1. Pri použití Content-Disposition v kóde, aby sa zabezpečilo, že prehliadač zobrazí okno na stiahnutie. response.addHeader("Content-Disposition","attachment"); Uistite sa, že ste neurobili nič s vypnutím cacheovania prehliadača. Nasledovne:
response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "No-cache"); response.setDateHeader("Expires", 0);
|