2011-12-23 5 views
42

Chcę, aby moi użytkownicy mogli pobrać plik PDF i aby przeglądarka traktowała go jako plik, a nie tylko go wyświetlał (tj. Ma nazwę pliku , użytkownik otrzymuje opcję zapisu itp.). Poniższy nagłówek wydaje się działać dobrze wszędzie, z wyjątkiem iOS:HTTP "Content-Disposition: attachment" i pobieranie plików na przeglądarce internetowej iOS

Content-Disposition: attachment; filename=file.pdf 

iOS po prostu ignoruje to i wyświetla obraz lub dokument. Nic wielkiego, możesz pomyśleć, z wyjątkiem tego, że robię to w ukrytej ramce IFRAME jako części mojej strony pobierania, więc dokument nigdy nie jest widoczny i wygląda na to, że pobieranie nie powiodło się.

Jaki jest najlepszy sposób na radzenie sobie z tym w sposób kompatybilny z różnymi przeglądarkami? Czy system iOS po prostu ignoruje ten nagłówek? Nie mogę znaleźć nigdzie wzmianki ani wzmianki o tym.

Czy muszę sprawdzić system iOS w nagłówkach żądań i inaczej podać odpowiedź? Miałem nadzieję, że tego uniknę. Dzięki.

P.S. Wszelkie inne pomocne wskazówki dotyczące pobierania plików itp. W przeglądarkach iOS są mile widziane.

WYJAŚNIENIE: Dotyczy to zwykłej strony internetowej przeglądanej przez mobilną przeglądarkę Safari. Nie jest to aplikacja natywna.

+0

Powodzenia? Mam podobny problem. –

+0

Jeszcze nie ... Ty, ja i co najmniej 5 innych osób wciąż czekamy, aby to zrozumieć. – dkamins

+1

Jaka jest jego wartość, oto sposób, w jaki rozwiązuję to obecnie: na komputerze przesyłam formularze/zakotwiczenia do ukrytego elementu iframe za pomocą sztuczki target = iframeId, na iPadzie/ipodzie (określanym przez sniffowanie userAgent), ale ustawiam cel na _blank, aby go otworzyć w nowej karcie. –

Odpowiedz

16

Mobilna przeglądarka Safari nie obsługuje pobierania plików.

Jeśli Safari może go wyświetlić, wyświetli się. Jeśli masz zainstalowane inne aplikacje, które mogą otworzyć plik, Safari go wykryje.

+0

Zobacz także https://apple.stackexchange.com/questions/25678/downloading-and-uploading-files-through-safari-ios – caw

Powiązane problemy