Content-disposition on MIME-protokollan laajennus, joka käskee MIME-käyttäjäagenttia näyttämään liitetyt tiedostot. Kun Internet Explorer vastaanottaa otsikon, se aktivoi tiedoston latausikkunan, ja sen tiedostonimilaatikko täyttyy automaattisesti otsikossa määritetyllä tiedostonimellä. (Huomaa, että tämä johtuu suunnittelusta; Tätä ominaisuutta ei voi käyttää tallentaaksesi asiakirjaa käyttäjän tietokoneelle kysymättä käyttäjältä, mihin se tallennetaan. )
Kun palvelin lähettää tiedoston asiakasselaimelle, jos se on selaimen tukema tiedostotyyppi, se yleensä avataan oletuksena selaimella, kuten txt, jpg jne., joka näytetään suoraan selaimessa. Jos käyttäjää pyydetään tallentamaan, sen käsittelyyn tarvitaan Content-Dispositionia, avain on lisätä liite:
Response.AppendHeader("Content-Disposition","attachment; filename=FileName.txt");
Huomautus: Tämä kehottaa tallentamaan tai avaamaan, ja vaikka valitsisit avaavan, se avautuu siihen liittyvällä ohjelmalla, kuten Notepadilla, sen sijaan, että avaisi sen suoraan.
Content-Disposition tarkoittaa, että käyttäjä haluaa tallentaa pyydetyn sisällön tiedostona oletustiedostona. Tarkat määritelmät ovat seuraavat:
content-disposition = "Content-disposition" ":"
disposition-tyyppi *( ";" disposition-parm )
disposition-tyyppi = "kiintymys" | disp-extension-token
disposition-parm = tiedostonimi-parm | disp-extension-parm
filename-parm = "tiedostonimi" "=" lainausmerkkijono
disp-extension-token = token
disp-extension-parm = token "=" ( token | lainausmerkkijono )
Näin voimme nähdä konkreettisia esimerkkejä yllä olevasta:
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”
Tietenkin tiedostonimen parametri voi sisältää polkutietoja, mutta User-Agnet jättää tämän tiedon huomiotta ja käyttää vain polun viimeistä osaa tiedoston nimenä. Jos käytät tätä otsikkoa vastaustyyppisovelluksessa/octet-streamissa, se tarkoittaa, ettet halua näyttää sisältöä suoraan, mutta "tiedoston lataus" -valintaikkuna ilmestyy, ja sitten sinun täytyy päättää, avaatko vai "tallennatko".
Muistiinpanot:
1. Kun käytät koodissa Content-Dispositionia, jotta selain avautuu latausikkunaan. response.addHeader("Content-Disposition","attachment"); Varmista, ettet ole tehnyt mitään selaimen välimuistin poistamiseksi käytöstä. Seuraavasti:
response.setHeader ("Pragma", "Välimuistiton"); response.setHeader("Välimuisti-hallinta", "Ei-välimuisti"); response.setDateHeader("Expires", 0);
|