A tartalom-elhelyezés a MIME protokoll kiterjesztése, amely a MIME felhasználói ügynöknek utasítást ad a csatolt fájlok megjelenítésére. Amikor az Internet Explorer megkapja a fejlécet, aktiválja a fájl letöltési kapcsolóablakot, és a fájlnév automatikusan megjelenik a fejlécben megadott fájlnévvel. (Fontos megjegyezni, hogy ezt a tervezés okozza; Ezt a funkciót nem lehet használni arra, hogy dokumentumot elments a felhasználó számítógépére anélkül, hogy megkérdeznéd, hova kell elmenteni. )
Amikor a szerver fájlt küld a kliens böngészőnek, ha az a böngésző által támogatott fájltípus, általában alapértelmezetten megnyitják a böngészővel, például txt, jpg stb., amely közvetlenül a böngészőben jelenik meg; ha a felhasználót a mentésre kell kérni, a tartalom-dispozíciót kell használni a feldolgozáshoz, a kulcs a csatolmány hozzáadása:
Response.AppendHeader("Tartalom-Meghatározás","csatolás; filename=FileName.txt");
Megjegyzés: Ez arra kér, hogy ments vagy nyisson meg, és még ha megnyitod is, akkor is megnyitja a hozzá tartozó programdal, például Notepaddal, nem pedig közvetlenül megnyitná.
A tartalom-elhelyezés alapértelmezett fájlnevet ad, amikor a felhasználó fájlként szeretné elmenteni a kért tartalmat. A konkrét meghatározások a következők:
tartalom-disposition = "tartalom-disposition" ":"
disposition-type *( ";" disposition-parm )
disposition-type = "kötődés" | disp-extension-token
disposition-parm = fájlnév-parm | disp-extension-parm
filename-parm = "fájlnév" "=" idézőjel-string
disp-extension-token = token
disp-extension-parm = token "=" ( token | idézőjel-string )
Tehát konkrét példákat láthatunk a fentiekből:
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”
Természetesen a fájlnév paraméter tartalmazhat útinformációt, de a User-Agnet figyelmen kívül hagyja ezt, és csak az út utolsó részét használja fájlnévként. Ha ezt a fejlécet használod a választípus alkalmazásában/oktet-streamben, az azt jelenti, hogy nem akarod közvetlenül megjeleníteni a tartalmat, de megjelenik egy "fájlletöltés" párbeszéd, és akkor rajtad múlik, hogy "megnyitod" vagy "mented" el.
Notes:
1. Amikor a kódban a Tartalom-Meghatározás funkciót használod, hogy a böngésző megjelenítse a letöltési párbeszédet. response.addHeader("Tartalom-Meghatározás","csatolás"); Győződj meg róla, hogy nem tettél semmit a böngésző gyorsítótárázás kikapcsolásával. A következők:
response.setHeader ("Pragma", "No-cache"); response.setHeader ("Cache-Control", "No-cache"); response.setDateHeader("Expires", 0);
|