2013-09-26 76 views
0

我想使用PHP可以恢復下載文件。 由於this post狀態我需要有一個特定的工作流程來做到這一點,所以我添加了它。Resumeable無法恢復下載

現在的問題是,在啓動下載時,下載管理器會識別出下載是可恢復的(由於「Accept-Range」 - Header),但是當開始恢復下載時,它會失敗。

我現在正在調試發送的頭的輸出,但我不能找到一個理由,爲什麼它不會工作。也許我現在有一個不好的看法,或者這個錯誤在別的地方,但我猜想它隱藏在這裏。

Request: bytes=2967529- 
Header: HTTP/1.1 206 Partial Content 
Header: content-type: application/x-rar-compressed 
Header: Content-Type: application/octet-stream 
Header: Cache-Control: private 
Header: Accept-Ranges: bytes 
Header: Content-Range: bytes 2967529-/52702041 
Header: content-length: 52702041 
Header: content-disposition: attachment; filename="XXX.rar" 

的另一種嘗試改變一些信息,但是它仍然不能正常工作:

Header: Content-Range: bytes 2967529-55669570/* 
Header: content-length: 52702041 

的內容長度(與該範圍內的最後一個整數)是文件大小,其中偏移已經扣除。

親切的問候

回答

0

我自己解決了這個問題。 的確,錯誤在頭裏。

我的思想內容,範圍和內容長度應該是這樣的工作:

Content-Range: bytes startbytes-totalbytes/bytestobesend 
Content-Length: bytestobesent 

其實,它的工作原理是這樣的:

Content-Range: bytes startbytes-totalbytes/totalbytes 
Content-Length: totalbytes 

(其中totalbytes是完整的文件大小,不只有發送的章節)