Dyspozycja treści: jakie są różnice między „wbudowanym” a „załącznikiem”?


245

Jakie są różnice między

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

i

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

Nie znam różnic, ponieważ kiedy korzystam z jednego lub drugiego, zawsze pojawia się okno z prośbą o pobranie pliku dla obu z nich. Przeczytałem specyfikację, ale nie ma pojęcia.


1
Gdy typ dyspozycji jest wbudowany, zwykle nie ma nazwy pliku.
james.garriss

Tylko dla informacji: nazwa pliku może być nadal ustawiona w linii, jednak nie jest to standard. Chrome, Firefox, IE i Opera przestrzegają nazwy pliku, ale Edge nie (2018).
bugybunny

czy ktoś wie o zasobie pokazującym, co różne przeglądarki robią z typem zawartości, podobnie jak caniuse dla css?
jmoreno

Odpowiedzi:


291

Ponieważ kiedy używam jednego lub drugiego, pojawia się okno z prośbą o pobranie pliku dla obu z nich.

To zachowanie zależy od przeglądarki i pliku, który próbujesz podać. W trybie inline przeglądarka spróbuje otworzyć plik w przeglądarce.

Na przykład, jeśli masz plik PDF i Firefox / Adobe Reader, wbudowane polecenie otworzy plik PDF w przeglądarce Firefox, a załącznik zmusi go do pobrania.

Jeśli podajesz plik .ZIP, przeglądarki nie będą mogły wyświetlać go bezpośrednio, więc w przypadku rozporządzeń wbudowanych i załączników plik zostanie pobrany.


7
Szybka korekta: zachowanie to czasami różni się od kontekstu mobilnego. Wiele widoków internetowych aplikacji zignoruje rozmieszczenie załączników i po prostu wyrenderuje je w przeglądarce, jeśli potrafią poprawnie zidentyfikować typ zawartości.
mixdev,

31

Jeśli jest wbudowany, przeglądarka powinna spróbować go wyrenderować w oknie przeglądarki. Jeśli nie, skorzysta z zewnętrznego programu, monitując użytkownika.

Z załącznikiem natychmiast przejdzie do użytkownika i nie będzie próbował załadować go do przeglądarki, czy może, czy nie.


10

Warto również wspomnieć, że inline spróbuje otworzyć Dokumenty Office (xls, doc itp.) Bezpośrednio z serwera, co może spowodować wyświetlenie monitu o poświadczenia użytkownika.

zobacz ten link:

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

ktoś próbował dostarczyć raport Excel z SSRS przez ASP.Net -> użytkownik zawsze był proszony o podanie poświadczeń. Po kliknięciu Anuluj w monicie i tak zostanie otwarty ...

Jeśli Dyspozycja treści jest oznaczona jako załącznik, zostanie automatycznie zapisana w folderze tymczasowym po kliknięciu opcji Otwórz, a następnie otwarta w programie Excel z kopii lokalnej.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.