Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

HTTP "Content-Disposition: attachment" and downloading files on iOS web browser

I want my users to be able to download a PDF file and have the browser treat it as a file, not just display it (i.e. it has a filename, user gets option to save, etc.). The following header seems to work well for this everywhere except for iOS:

Content-Disposition: attachment; filename=file.pdf 

iOS just ignores this and displays the image or document. No big deal, you might think, except I'm doing this in a hidden IFRAME as part of my download page, so the document is never even seen, and it looks like the download failed.

What's the best way to handle this in a cross-browser compatible manner? Does iOS just ignore this header? I can't find any spec or mention of this anywhere.

Do I need to check for iOS in request headers and serve the response differently? I was hoping to avoid this. Thanks.

P.S. Any other helpful tips related to downloading files etc. in iOS web browsers are appreciated.

CLARIFICATION: This regarding a regular web site browsed by the mobile Safari browser. Not a native app.

like image 934
dkamins Avatar asked Dec 23 '11 19:12

dkamins


People also ask

What is HTTP content disposition?

In a regular HTTP response, the Content-Disposition response header is a header indicating if the content is expected to be displayed inline in the browser, that is, as a Web page or as part of a Web page, or as an attachment, that is downloaded and saved locally.

What is content disposition attachment filename?

Content-Disposition is an optional header and allows the sender to indicate a default archival disposition; a filename. The optional "filename" parameter provides for this. This header field definition is based almost verbatim on Experimental RFC 1806 by R. Troost and S.

What does inline download mean?

With inline, the browser will try to open the file within the browser. For example, if you have a PDF file and Firefox/Adobe Reader, an inline disposition will open the PDF within Firefox, whereas attachment will force it to download.


1 Answers

The mobile Safari browser doesn't support downloading files.

If Safari can display it, it will display. If you have installed other apps that can open the file, Safari will detect it for you.

like image 79
aelam Avatar answered Sep 16 '22 11:09

aelam