SEEDS Creator's Blog

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

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メ ソッドでリクエストする等がありそうです。