hero_picture

Android ブラウザで PHP によるファイルダウンロードが出来ない件

2014/12/05

Android ブラウザで PHP によるファイルダウンロードが出来ない件

① SSL にて、PDF や ZIP ファイルをダウンロードする場合、SSL の証明書が有効でないとダウンロードは出来ません。

この場合、.pdf ファイルに直接アクセスしても、ダウンロードは出来ません。

② POST 送信で 「Content-Disposition:attachment」を出力する場合、再び GETで同じURLにリクエストを送信するとのことです。

GET 送信で、リクエストさせる方法で実装するしかないようです。

「Content-Disposition:inline」にした場合、POST→GET の送信はされませんでしたが、ファイル名(filename)が指定出来ませんでした。

よって、この方法もダメでした。

参考URL

http://zhzrzkz.blogspot.jp/2012/05/android.html

http://stackoverflow.com/questions/4674737/avoiding-content-type-issues-when-downloading-a-file-via-browser-on-android

https://code.google.com/p/android/issues/detail?id=1978

これらによると、AndroidのブラウザがPOSTメソッドでサーバにリクエストし

て、サーバからContent- Disposition:attachmentなヘッダを受け取ると、再び

GETメソッドで同じURLにリクエストを送信するとのことです。

また、この動作はPCのブラウザとは違うのですが、バグでは無いようです。

対応方法としては、POSTメソッドとGETメソッドで処理を変えるとか、フォーム

データの内容が見えてもよいのなら画像をダウンロードする URLには、GETメ

ソッドでリクエストする等がありそうです。