ホームページ >バックエンド開発 >PHPチュートリアル >ファイルをダウンロードする際のHTTPレスポンスヘッダについて教えてください。
PHP を使ってファイルをダウンロードする方法を学んでいたとき、教科書には 3 つの http メッセージ ヘッダーを提供する必要があると書かれていました:
header("Content-type: application/octet-stream"); //高速浏览器传递的是文件流 header("Accept-Length: 2048"); //文件大小 header("Content-Disposition: attachment; filename=abc.txt"); //指定文件名
<?php header("Content-type: application/octet-stream"); header("Accept-Length: 2048"); echo 123;
<?php header("Accept-Length: 2048"); header("Content-Disposition: attachment; filename=abc.txt"); echo 123;
それは Accept-Length ではなく、Content-Length です
誰が Accept-Length を使用するように誤解させたのかわかりません RFC 標準にはそのようなヘッダーはありません。 。
それは Accept-Length ではなく、Content-Length です
誰が Accept-Length を使用するように誤解させたのかわかりません。RFC 標準にはそのようなヘッダーはありません。
1. どちらのページにもメッセージ ヘッダーがありませんが、それでもファイルを正常にダウンロードできるのはなぜですか?
Content-Length を設定していないため、接続終了時のデフォルトの出力はダウンロードされたコンテンツです。
2. 指定したファイルサイズは 2048 バイトですが、実際の出力は「123」の 3 バイトだけですが、なぜファイルは正常にダウンロードできますか? 「Accept-Length」メッセージヘッダーはオプションですか?
Accept-Length は、許容される文字列の最大長を意味します。したがって、設定してもしなくても構いません。
1. これら 2 つのページにはメッセージ ヘッダーがありませんが、それでもファイルを正常にダウンロードできるのはなぜですか?
Content-Length を設定していないため、接続終了時のデフォルトの出力はダウンロードされたコンテンツです。
2. 指定したファイルサイズは 2048 バイトですが、実際の出力は「123」の 3 バイトだけですが、なぜファイルは正常にダウンロードできますか? 「Accept-Length」メッセージヘッダーはオプションですか?
Accept-Length は、許容される文字列の最大長を意味します。したがって、設定してもしなくても構いません。
悪くない、たくさんのことを学びました。