首頁 後端開發 php教程 请问一上文件上载时,HTTP响应消息头的有关问题

请问一上文件上载时,HTTP响应消息头的有关问题

Jun 13, 2016 pm 01:20 PM
content header length quot

请教一下文件下载时,HTTP响应消息头的问题。
我在学习利用PHP实现文件下载的时候,教材说需要提供三个http消息头:

PHP code
<!--

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”两个消息头,我还是有点不太理解,所以我分别做了两个例子:

a.php:
PHP code
<!--

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
<!--

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、这两个页面都少一个消息头,为什么还都能成功的下载文件?
2、我虽然指定的文件大小是2048个字节,但是真实输出的只有“123”三个字节,为什么也能正常的下载文件?
“Accept-Length”消息头是可设可不设吗?

我刚刚学习http,麻烦大家就我问的问题回答,不要引出更深的概念,因为我看不懂。。
十分感谢!:)

------解决方案--------------------
1、这两个页面都少一个消息头,为什么还都能成功的下载文件?

因为你没有设定Content-Length,默认连接结束时的输出就是下载内容。

2、我虽然指定的文件大小是2048个字节,但是真实输出的只有“123”三个字节,为什么也能正常的下载文件?“Accept-Length”消息头是可设可不设吗?

Accept-Length的意思是最大可接受字符串的长度。所以可设可不设。
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

SpringBoot怎麼透過Feign呼叫傳遞Header中參數 SpringBoot怎麼透過Feign呼叫傳遞Header中參數 May 16, 2023 pm 08:38 PM

【SpringBoot】透過Feign呼叫傳遞Header中參數如何透過Feign傳遞Header參數問題描述我們在SpringCloud中使用Feign請求另一個服務的Api介面時,有將Header中參數傳遞下去的需求,如果不做特殊處理,就會將Header中的參數遺失。解決方案方案一:透過@RequestHeader(name="headerName")來傳遞例如:Feign定義如下@FeignClient(name="service-name")pub

linux的header是什麼意思 linux的header是什麼意思 Jul 18, 2023 pm 03:34 PM

linux的header是指在文件或資料流中的開頭部分,用於包含關於內容的元數據,透過正確地編寫和使用Header文件,開發者能夠更好地利用系統資源,提高程式碼的可讀性和可維護性。

php header頭怎麼實現跳轉 php header頭怎麼實現跳轉 Dec 02, 2022 am 09:14 AM

php header實作跳轉的方法:1、使用「Header("Location:$url");」語法實作跳轉;2、使用if判斷式實作跳轉,其跳轉語句如「if($_COOKIE[" u_type"]){ header('location:register.php'); } else{ setcookie('u_type','1','86400*360');」。

如何使用PHP header()方法調整網頁 如何使用PHP header()方法調整網頁 Mar 28, 2023 pm 01:54 PM

PHP是一種功能強大的程式語言,可以用來創建動態網站和Web應用程式。其中一個最強大的功能之一是PHP的header()方法。在本文中,我們將探討如何使用PHP的header()方法來調整網頁。

使用java的String.length()函數取得字串的長度 使用java的String.length()函數取得字串的長度 Jul 25, 2023 am 09:09 AM

使用Java的String.length()函數取得字串的長度在Java程式設計中,字串是一種非常常見的資料類型,我們經常需要取得字串的長度,即字串中字元的個數。在Java中,我們可以使用String類別的length()函數來取得字串的長度。下面是一個簡單的範例程式碼:publicclassStringLengthExample{publ

html5標籤head和header有什麼差別 html5標籤head和header有什麼差別 Jan 17, 2022 am 11:10 AM

區別:1、head標籤用於定義文檔頭部,它是所有頭部元素的容器,而header標籤用於定義文檔的頁眉(介紹資訊);2、瀏覽器都支援head標籤,而舊版本瀏覽器皆不支援header標籤,需要IE9+以上瀏覽器才能支援header標籤。

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

PHP檔案下載函數大全:readfile、header、Content-Disposition等函數的檔案下載實例分析 PHP檔案下載函數大全:readfile、header、Content-Disposition等函數的檔案下載實例分析 Nov 18, 2023 pm 03:26 PM

PHP檔案下載函數大全:readfile、header、Content-Disposition等函數的檔案下載實例分析檔案下載是Web應用程式中必不可少的功能之一,而PHP作為一種廣泛使用的Web開發語言,提供了多種實作文件下載的函數和方法。本文將介紹PHP常用的檔案下載函數,包括readfile、header、Content-Dispo

See all articles