HTTP “Content-Disposition: attachment” and downloa

2019-01-16 16:00发布

问题:

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.

回答1:

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.