Disposisi konten adalah perpanjangan dari protokol MIME, yang menginstruksikan agen pengguna MIME untuk menampilkan file terlampir. Saat Internet Explorer menerima header, Internet Explorer mengaktifkan kotak dialog unduhan file, dan kotak nama filenya secara otomatis diisi dengan nama file yang ditentukan dalam header. (Perhatikan bahwa ini disebabkan oleh desain; Anda tidak dapat menggunakan fitur ini untuk menyimpan dokumen ke komputer pengguna tanpa menanyakan kepada pengguna di mana menyimpannya. )
Ketika server mengirim file ke browser klien, jika itu adalah jenis file yang didukung oleh browser, umumnya akan dibuka secara default menggunakan browser, seperti txt, jpg, dll., yang akan ditampilkan langsung di browser, jika pengguna perlu diminta untuk menyimpan, perlu menggunakan Content-Disposition untuk memprosesnya, kuncinya adalah menambahkan lampiran:
Response.AppendHeader("Content-Disposition","attachment; filename=FileName.txt");
Catatan: Ini akan meminta Anda untuk menyimpan atau membuka, dan bahkan jika Anda memilih untuk membukanya, itu akan membukanya dengan program terkait seperti Notepad, alih-alih IE membukanya secara langsung.
Content-Disposition adalah untuk memberikan nama file default ketika pengguna ingin menyimpan konten yang diminta sebagai file. Definisi spesifiknya adalah sebagai berikut:
content-disposition = "Disposisi Konten" ":"
disposisi-tipe *( ";" disposisi-parm )
disposition-type = "lampiran" | disp-ekstensi-token
disposition-parm = nama file-parm | disp-ekstensi-parm
filename-parm = "filename" "=" quoted-string
disp-extension-token = token
disp-extension-parm = token "=" ( token | string tanda kutip )
Jadi kita dapat melihat contoh spesifik dari hal di atas:
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”
Tentu saja, parameter nama file dapat berisi informasi jalur, tetapi User-Agnet akan mengabaikan informasi ini dan hanya menggunakan bagian terakhir dari informasi jalur sebagai nama file. Jika Anda menggunakan header ini dalam jenis respons application/octet-stream, itu berarti Anda tidak ingin menampilkan konten secara langsung, tetapi dialog "unduhan file" akan muncul, dan kemudian terserah Anda untuk memutuskan apakah akan "membuka" atau "menyimpan".
Catatan:
1. Saat menggunakan Content-Disposition dalam kode untuk memastikan bahwa browser memunculkan dialog unduhan. response.addHeader("Disposisi Konten","lampiran"); Pastikan Anda belum melakukan apa pun untuk menonaktifkan penembolokan browser. Sebagai berikut:
response.setHeader("Pragma", "Tanpa cache"); response.setHeader("Cache-Control", "No-cache"); response.setDateHeader("kedaluwarsa", 0);
|