2013-09-26 57 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是完整的文件大小,不只有发送的章节)