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

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

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

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

PHP コード
<!--

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 コード
<!--

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 コード
<!--

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