Content-Disposition: Apa perbedaan antara "inline" dan "attachment"?

245

Apa perbedaannya

Response.AddHeader("Content-Disposition", "attachment;filename=somefile.ext")

dan

Response.AddHeader("Content-Disposition", "inline;filename=somefile.ext")

Saya tidak tahu perbedaannya, karena ketika saya menggunakan satu atau yang lain saya selalu mendapatkan jendela meminta saya untuk mengunduh file untuk keduanya. Saya membaca spesifikasi, tetapi tidak mengerti.

Bersihkan
sumber
1
Ketika jenis disposisi inline, biasanya tidak memiliki nama file.
james.garriss
Hanya untuk info siapa saja: nama file masih dapat diatur dengan inline itu tidak standar sekalipun. Chrome, Firefox, IE dan Opera menghormati nama file tetapi Edge tidak (2018).
bugybunny
apakah ada yang tahu sumber daya untuk menunjukkan apa yang dilakukan berbagai browser dengan tipe konten, mirip dengan caniuse untuk css?
jmoreno

Jawaban:

291

Karena ketika saya menggunakan satu atau yang lain saya mendapatkan jendela meminta saya untuk mengunduh file untuk keduanya.

Perilaku ini tergantung pada browser dan file yang Anda coba layani. Dengan inline, browser akan mencoba membuka file di dalam browser.

Misalnya, jika Anda memiliki file PDF dan Firefox / Adobe Reader, disposisi inline akan membuka PDF di dalam Firefox, sedangkan lampiran akan memaksanya untuk mengunduh.

Jika Anda menyajikan file .ZIP, browser tidak akan dapat menampilkannya secara inline, jadi untuk disposisi inline dan lampiran, file tersebut akan diunduh.

jimyi
sumber
7
Hanya koreksi cepat: Perilaku ini terkadang berbeda dari konteks seluler. Banyak tampilan web aplikasi akan mengabaikan disposisi lampiran dan membuatnya di browser jika mereka dapat mengidentifikasi tipe konten dengan benar.
mixdev
31

Jika inline, browser harus berusaha untuk merendernya di dalam jendela browser. Jika tidak, itu akan menggunakan program eksternal, mendorong pengguna.

Dengan lampiran, itu akan segera pergi ke pengguna, dan tidak mencoba memuatnya di browser, apakah bisa atau tidak.

Cullen Walsh
sumber
10

Mungkin juga layak disebutkan bahwa inline akan mencoba membuka Dokumen Office (xls, doc dll) langsung dari server, yang mungkin mengarah ke Prompt Kredensial Pengguna.

lihat tautan ini:

http://forums.asp.net/t/1885657.aspx/1?Access+the+SSRS+Report+in+excel+format+on+server

seseorang mencoba mengirimkan Laporan Excel dari SSRS melalui ASP.Net -> pengguna selalu diminta untuk memasukkan kredensial. Setelah mengklik membatalkan pada prompt itu akan tetap dibuka ...

Jika Disposisi Konten ditandai sebagai Lampiran, ia akan secara otomatis disimpan ke folder temp setelah mengklik terbuka dan kemudian dibuka di Excel dari salinan lokal.

pastrami01
sumber