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.
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.
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.
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With