ホームページ > バックエンド開発 > PHPチュートリアル > ファイルアップロード時のHTTPレスポンスヘッダについて教えてください。

ファイルアップロード時のHTTPレスポンスヘッダについて教えてください。

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-13 13:20:54
オリジナル
942 人が閲覧しました

ファイルをダウンロードする際のHTTPレスポンスヘッダについて教えてください。
私が PHP を使ってファイルをダウンロードする方法を学んでいたとき、教科書には 3 つの http メッセージ ヘッダーを提供する必要があると書かれていました:

PHP コード

1

2

3

4

5

6

7

8

9

<!--

 

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

 

-->

    header("Content-type: application/octet-stream");          //高速浏览器传递的是文件流

    header("Accept-Length: 2048");                             //文件大小

    header("Content-Disposition: attachment; filename=abc.txt"); //指定文件名

ログイン後にコピー


その内、 「Content-type」と「Content-Disposition」の 2 つのメッセージ ヘッダー、まだ理解できないので、それぞれ 2 つの例を作成しました。

a.php:
PHP コード

1

2

3

4

5

6

7

8

9

10

11

12

<!--

 

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

 

-->

<?php

 

    header("Content-type: application/octet-stream");

    header("Accept-Length: 2048");   

 

    echo 123;

ログイン後にコピー


b.php:
PHP コード

1

2

3

4

5

6

7

8

9

10

11

12

<!--

 

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

 

-->

<?php

 

    header("Accept-Length: 2048");

    header("Content-Disposition: attachment; filename=abc.txt");   

 

    echo 123;

ログイン後にコピー


私の質問は次のとおりです:
1. 両方のページにメッセージが 1 つありません。 、それでもファイルを正常にダウンロードできるのはなぜですか?
2. ファイルサイズは 2048 バイトですが、実際の出力は「123」の 3 バイトだけですが、なぜ正常にダウンロードできますか?
「Accept-Length」メッセージ ヘッダーはオプションですか?

http を学んだばかりです。理解できないので、より深い概念を導入しないで、質問に答えてください。 。
ありがとうございます! :)

-----解決策---------
1. どちらのページにもメッセージ ヘッダーがありませんが、それでもファイルを正常にダウンロードできるのはなぜですか?

Content-Length を設定していないため、接続終了時のデフォルトの出力はダウンロードされたコンテンツです。

2. 指定したファイルサイズは 2048 バイトですが、実際の出力は "123" 3 バイトしか正常にダウンロードできません。 「Accept-Length」メッセージヘッダーはオプションですか?

Accept-Length は、許容される文字列の最大長を意味します。したがって、設定してもしなくても構いません。
関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート