我希望使用PHP恢复文件的可恢复性。 由于this post状态,我需要有一个特定的工作流程,所以我添加了它。
现在的问题是,在启动下载时,downloadmanager会识别下载是可恢复的(由于“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 :(得分:0)
我自己解决了这个问题。 实际上,错误在标题内。
我认为Content-Range和Content-Length应该像这样工作:
Content-Range: bytes startbytes-totalbytes/bytestobesend
Content-Length: bytestobesent
实际上,它的工作原理如下:
Content-Range: bytes startbytes-totalbytes/totalbytes
Content-Length: totalbytes
(其中totalbytes是完整的文件大小,而不仅仅是发送的章节)