Nie.
Typ treści powinien być taki, jaki jest, o ile go znasz. application/octet-stream
jest zdefiniowany jako „arbitralne dane binarne” w RFC 2046, i tutaj jest wyraźne nakładanie się na to, że jest odpowiedni dla podmiotów, których jedynym zamierzonym celem jest zapisanie na dysku, i od tego momentu znajduje się poza czymkolwiek „webby”. Lub spojrzeć na to z innej strony; jedyne, co można bezpiecznie zrobić z aplikacją / oktetem-strumieniem, to zapisać go do pliku i mieć nadzieję, że ktoś wie, do czego służy.
Możesz łączyć użycie Content-Disposition
z innymi typami treści, takimi jak, image/png
a nawet, text/html
aby wskazać, że chcesz zapisać zamiast wyświetlać. Kiedyś niektóre przeglądarki ignorowały to w przypadku, text/html
ale myślę, że to było dawno temu w tym momencie (i wkrótce idę spać, więc nie zamierzam testować całej gamy przeglądarki w tej chwili; może później).
RFC 2616 wspomina również o możliwości tokenów rozszerzeń, a obecnie większość przeglądarek uznaje, inline
że oznacza, że chcesz, aby jednostka była wyświetlana, jeśli to możliwe (to znaczy, jeśli jest to typ przeglądarki, który wyświetla, w przeciwnym razie nie ma wyboru) . Jest to oczywiście domyślne zachowanie, ale oznacza to, że możesz dołączyć filename
część nagłówka, której będą używać przeglądarki (być może z pewną modyfikacją, aby rozszerzenia plików były zgodne z lokalnymi normami systemowymi dla danego typu treści, a może nie) jako sugestia, jeśli użytkownik próbuje zapisać.
W związku z tym:
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="picture.png"
Oznacza „Nie wiem, co to do cholery jest. Proszę, zapisz je jako plik, najlepiej o nazwie picture.png”.
Content-Type: image/png
Content-Disposition: attachment; filename="picture.png"
Oznacza „To jest obraz PNG. Proszę zapisać go jako plik, najlepiej o nazwie picture.png”.
Content-Type: image/png
Content-Disposition: inline; filename="picture.png"
Oznacza „To jest obraz PNG. Wyświetl go, chyba że nie wiesz, jak wyświetlać obrazy PNG. W przeciwnym razie lub jeśli użytkownik zdecyduje się go zapisać, zalecamy nazwę picture.png dla pliku, który zapiszesz jako”.
Spośród tych przeglądarek, które rozpoznają, inline
niektóre zawsze by go używały, podczas gdy inne użyłyby go, gdyby użytkownik wybrał „zapisz link jako”, ale nie, jeśli wybrałby „zapisz” podczas przeglądania (lub przynajmniej IE tak było, mogło się zmienić kilka lat temu).
attachment
może to być uważane za „najlepiej tego nie pokazywać”, ainline
jako „najlepiej to pokazywać, jeśli potrafisz”. Tak czy inaczej, większość przeglądarek użyje wartości nazwy pliku jako sugerowanej nazwy pliku, ale użytkownicy zawsze mogą to zmienić.