Kindle の Web ブラウザーから mobi/awz3 ファイルを直接ダウンロードするために、laravel5 (PHP フレームワーク) を使用して Web ページを作成するとします。コードは次のようになります (詳細については、上記のリンクを参照してください)。
return response()->download(storage_path().'/kindle/'.urldecode($filename).$ext, $fileoutput);
最初のパラメータはfullpath
、ファイルの. 2 番目のパラメータはfilename
.
次の問題に直面しています。
で正しいファイル名設定を使用してコンピューターからダウンロードできますが、 Kindle のデフォルト ブラウザー silkからダウンロードすると$fileoutput
、常にファイル名が失われます。応答ヘッダーを確認しました。これは次のとおりです。
Accept-Ranges: bytes
Cache-Control: public
Connection: keep-alive
Content-Disposition: attachment; filename=".azw3"; filename*=utf-8''%E6%B5%AE%E7%94%9F%E5%85%AD%E8%AE%B0.azw3
Content-Length: 1526943
Content-Type: application/octet-stream
Date: Fri, 26 Aug 2016 14:22:06 GMT
Last-Modified: Sat, 28 May 2016 05:55:45 GMT
Server: nginx/1.6.2
Set-Cookie: XSRF-TOKEN=eyJpdiI6IjNBSmV6Q0R6QU8wWTlhSHU2TlFtYmc9PSIsInZhbHVlIjoiYnBGSThcL1wvaFRCSXNUUnIwZjVyR2M3anhMOUFBUDhTeU9zRGI4ODJzbEVCZ3FQMnF6XC81MFBITXJFY0xQQ0s2MytLdGQ5ZGVsUTNPMGdDb09xbXdmNXc9PSIsIm1hYyI6ImUyNTU1YjdjOTMxNDE1NTk1MDg1ZTFiODVhYTYxNTIzZTc0MDg3MzQyNjg0YzQ0MjlkYjllYjYyNTNhNDMwMmUifQ%3D%3D; expires=Fri, 26-Aug-2016 16:22:06 GMT; Max-Age=7200; path=/
laravel_session=eyJpdiI6IlVNY1h4MmVSOGZaS3A2bHRSZkJMWGc9PSIsInZhbHVlIjoiRWtBK01jeHBPZnhEdlVQckh1VkhwTmlNYTBQSHlLUWd6aEY1dmpaMUIzVzNGa1Q2cnZIY1FUcUl3REtLTUdwSTE2OHRXZldDSEVPT2VIZVUzV2JUVkE9PSIsIm1hYyI6IjE5OGQ5MDVhZGMzYzJjZWRjMmNjY2FlYTQxNjc0ZTU4YjkyZTFmYzk2Yjg3YmIwZGNkYWQxMjA0M2UwZTIwYTMifQ%3D%3D; expires=Fri, 26-Aug-2016 16:22:06 GMT; Max-Age=7200; path=/; httponly
strict-transport-security: max-age=15768000
1 つ (amazon.com から電子ブックをダウンロード) との比較:
Accept-Ranges: bytes
Content-Disposition: attachment; filename=-.azw3; filename*=UTF-8''%e4%b8%89%e5%9b%bd%e6%bc%94%e4%b9%89%20%28%e5%8f%a4%e5%85%b8%e5%90%8d%e8%91%97%e6%99%ae%e5%8f%8a%e6%96%87%e5%ba%93%29.azw3
Content-Length: 1086746
Content-Type: application/x-mobi8-ebook
Date: Fri, 26 Aug 2016 14:55:50 GMT
Etag: "atv:kin:2:7em8xElPVsRobIXa1NiUa2s2zfXgvBRZ8wJeuKk3OeNpRWnSDSkae0GhbcBTm6GbPZdDY/1CbRICldAJKv4gtiK8SMCbGLLWYrJkKurs0VVe3SB6fEgXLtuEirb2OPJMbvVftnTgCXLEEeGe128ba53v7vM/ABoIgQrWCBD7zXs=:vuRb/GOXZICuuca026R6sJpOCdE=:7l7eh3kzFhCeES7yH/6BYA=="
Hint-Sidecar-Download: 0
ResumableDownloadToken: atv:kin:2:7em8xElPVsRobIXa1NiUa2s2zfXgvBRZ8wJeuKk3OeNpRWnSDSkae0GhbcBTm6GbPZdDY/1CbRICldAJKv4gtiK8SMCbGLLWYrJkKurs0VVe3SB6fEgXLtuEirb2OPJMbvVftnTgCXLEEeGe128ba53v7vM/ABoIgQrWCBD7zXs=:vuRb/GOXZICuuca026R6sJpOCdE=:7l7eh3kzFhCeES7yH/6BYA==
Server: Amazon Web Server
x-adp-host: H2KOCVSR4J4L1J
シルクブラウザは最初のものしか読み取らfilename=".azw3"
ず、後者のものからファイル名を取得できないと思いますfilename*=utf8...
。
これを修正するアイデアはありますか?
アップデート
2 回目の検索の後、ファイル名が の場合chinese
、つまり が$fileoutput
純粋な英語の場合にのみ問題が発生しfilename
、ヘッダーの最初が正しいことがわかりました。