Satura izvietojums ir MIME protokola paplašinājums, kas dod norādījumus MIME lietotāja aģentam parādīt pievienotos failus. Kad pārlūkprogramma Internet Explorer saņem galveni, tā aktivizē failu lejupielādes dialoglodziņu, un tā faila nosaukums tiek automātiski aizpildīts ar galvenē norādīto faila nosaukumu. (Ņemiet vērā, ka to izraisa dizains; Šo līdzekli nevar izmantot, lai saglabātu dokumentu lietotāja datorā, nejautājot lietotājam, kur to saglabāt. )
Kad serveris nosūta failu uz klienta pārlūkprogrammu, ja tas ir pārlūkprogrammas atbalstīts faila tips, tas parasti tiks atvērts pēc noklusējuma, izmantojot pārlūkprogrammu, piemēram, txt, jpg utt., Kas tiks parādīts tieši pārlūkprogrammā, ja lietotājam ir jāpieprasa saglabāt, ir nepieciešams izmantot satura izvietojumu, lai to apstrādātu, galvenais ir pievienot pielikumu:
Response.AppendHeader("Satura izvietojums","pielikums; filename=FileName.txt");
Piezīmes: Tas liks jums saglabāt vai atvērt, un pat tad, ja izvēlaties to atvērt, tas tiks atvērts ar saistīto programmu, piemēram, Notepad, nevis IE to atvērs tieši.
Content-Disposition ir nodrošināt noklusējuma faila nosaukumu, kad lietotājs vēlas saglabāt pieprasīto saturu kā failu. Konkrētās definīcijas ir šādas:
content-disposition = "satura izvietojums" ":"
dispozīcijas tips *( ";" dispozīcija-parm )
disposition-type = "pielikums" | disp-paplašinājuma-marķieris
dispozīcija-parm = faila nosaukums-parm | disp-paplašinājums-parm
faila nosaukums-parm = "faila nosaukums" "=" pēdiņas virkne
disp-extension-token = marķieris
disp-extension-parm = marķieris "=" ( marķieris | pēdiņas virkne )
Tātad mēs varam redzēt konkrētus piemērus no iepriekš minētā:
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”
Protams, parametrs faila nosaukums var saturēt informāciju par ceļu, bet User-Agnet ignorēs šo informāciju un kā faila nosaukumu izmantos tikai ceļa informācijas pēdējo daļu. Ja izmantojat šo galveni atbildes tipā application/octet-stream, tas nozīmē, ka jūs nevēlaties parādīt saturu tieši, bet parādīsies dialoglodziņš "failu lejupielāde", un tad jums ir jāizlemj, vai "atvērt" vai "saglabāt".
Piezīmes:
1. Izmantojot Content-Disposition kodā, lai nodrošinātu, ka pārlūkprogramma uznirst lejupielādes dialoglodziņš. response.addHeader("Satura izvietojums","pielikums"); Pārliecinieties, vai neesat neko darījis, lai atspējotu pārlūkprogrammas kešatmiņu. Šādi:
response.setHeader("Pragma", "Bez kešatmiņas"); response.setHeader("Kešatmiņas kontrole", "Bez kešatmiņas"); response.setDateHeader("Beidzas", 0);
|