国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

http - 關(guān)於PHP設(shè)定content-length的問題。
過去多啦不再A夢
過去多啦不再A夢 2017-05-16 12:58:51
0
1
1262

1.先說一下我這邊的使用場景。就是客戶端使用服務(wù)端的介面下載檔。服務(wù)端這邊是直接取得二進位然後輸出的。請問除了echo 二進制以外還有沒有更合理的返回方式。

2.用PHP header('Content-Length: '.strlen($Download));設(shè)定Content-Length,這個設(shè)定實際上無效的嗎?因為照理來說的話,本身http請求會根據(jù)輸出的大小來設(shè)定Content-Length。即使我設(shè)定改變了 最終請求的Content-Length還是根據(jù)實際的大小。

3.還有一個問題就是例如我請求一個 10M的檔案的二進位。用瀏覽器請求的話壓根沒有Content-Length這個頭回傳。用客戶端那邊請求能正常回傳Content-Length。 Content-Length的回傳請求的方式也有關(guān)係?

過去多啦不再A夢
過去多啦不再A夢

全部回覆(1)
漂亮男人

你的來源是二進位流?

1, 如果是文件,只是為了隱藏真實路徑,可以嘗試用以下方式:

readfile($filename)echo效率高

或使用 X-SendFile技術(shù)

如果的確是二進位流,也可以嘗試先快取成檔案了 然後 X-SendFile

2, header設(shè)置Content-Length是有效的,返回真實的大小即可。這個在一些下載軟件比較重要,比如迅雷。
它會檢測最終大小是否符合Content-Length

3, 瀏覽器會以Content-Length為參照,
但是當網(wǎng)絡(luò)很糟糕的時候,超時、斷流了,瀏覽器也會停止下載,最終得到的是一個不完整的文件,這個下載國外軟件的時候很常見。
如果實際大小超過了Content-Length,瀏覽器也接受。

4, 所以即使沒有Content-Length返回,瀏覽器也可以下載,等到服務(wù)端斷流,瀏覽器就終止下載。

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板