php可恢复下载。浏览器不希望显示进度

php可恢复下载。浏览器不希望显示进度,php,google-chrome,browser,download,Php,Google Chrome,Browser,Download,首先:我试图使用堆栈溢出“类似问题”和google找到一个解决方案。也许我只是没看到,但是 我写了一个PHP类,强制下载文件。并给出一个标题“接受范围:字节” 我做错了什么?浏览器(Google Chrome)向我显示零进度和0 kb/秒的下载速度(我通过sleep()函数降低速度)。但在浏览器完成下载后,我马上就能看到100%的进度。为什么浏览器不希望平滑地显示其进度 文件下载软件可以完美地与此配合:显示正确的进度,并可以使用暂停\恢复下载。 此软件的日志: [17:27:50.347] Th

首先:我试图使用堆栈溢出“类似问题”和google找到一个解决方案。也许我只是没看到,但是

我写了一个PHP类,强制下载文件。并给出一个标题“接受范围:字节”

我做错了什么?浏览器(Google Chrome)向我显示零进度和0 kb/秒的下载速度(我通过sleep()函数降低速度)。但在浏览器完成下载后,我马上就能看到100%的进度。为什么浏览器不希望平滑地显示其进度

文件下载软件可以完美地与此配合:显示正确的进度,并可以使用暂停\恢复下载。 此软件的日志:

[17:27:50.347] Thread main : task started
[17:27:50.348] Thread main : thread 1 started
[17:27:50.348] Thread main : thread started
[17:27:50.349] Thread main : connecting
[17:27:50.350] Thread main : localhost:80
[17:27:50.351] Thread main : localhost:80
[17:27:50.351] Thread main : GET /fs-debug.png HTTP/1.1
               Thread main : User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.77.4 (KHTML, like Gecko) Version/7.0 Safari/537.77.4    
               Thread main : Host: bonell
               Thread main : Pragma: no-cache
               Thread main : Accept: */*
               Thread main : Connection: close
               Thread main : Cache-Control: no-cache
               Thread main : Referer: http://bonell/
[17:27:51.464] Thread main : HTTP/1.1 200 OK
               Thread main : Date: Mon, 14 Sep 2015 14:27:50 GMT
               Thread main : Server: Apache
               Thread main : X-Powered-By: PHP/5.3.28
               Thread main : Last-Modified: Mon, 14 Sep 2015 12:41:16 GMT
               Thread main : Cache-Control: no-cache, must-revalidate
               Thread main : Expires: Mon, 14 Sep 2015 14:27:50 GMT
               Thread main : Cache-Control: post-check=0,pre-check=0
               Thread main : Cache-Control: max-age=0
               Thread main : Pragma: no-cache
               Thread main : Connection: close
               Thread main : Content-Transfer-Encoding: Binary
               Thread main : Content-disposition: attachment; filename="tst.png"
               Thread main : Accept-Ranges: bytes
               Thread main : Content-Length: 27314
               Thread main : Content-Type: image/png
[17:27:51.465] Thread main : saved to /Users/LINKeR/Downloads/fs-debug.1.png.folx/fs-debug.1.png
[17:27:51.466] Thread main : saved to /Users/LINKeR/Downloads/fs-debug.1.png.folx/fs-debug.1.png
[17:27:54.392] Thread main : socket closed
[17:27:54.393] Thread main : thread completed
[17:27:54.393] Thread main : thread 1 completed
[17:27:54.394] Thread main : task stopped
在这之后,我点击“简历下载”,它的作品:

[17:34:17.379] Thread main : GET /fs-debug.png HTTP/1.1
               Thread main : User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.77.4 (KHTML, like Gecko) Version/7.0 Safari/537.77.4
               Thread main : Host: bonell
               Thread main : Pragma: no-cache
               Thread main : Accept: */*
               Thread main : Connection: close
               Thread main : Cache-Control: no-cache
               Thread main : Referer: http://bonell/
[17:34:19.420] Thread main : HTTP/1.1 200 OK
               Thread main : Date: Mon, 14 Sep 2015 14:34:17 GMT
               Thread main : Server: Apache
               Thread main : X-Powered-By: PHP/5.3.28
               Thread main : Last-Modified: Mon, 14 Sep 2015 12:41:16 GMT
               Thread main : Cache-Control: no-cache, must-revalidate
               Thread main : Expires: Mon, 14 Sep 2015 14:34:18 GMT
               Thread main : Cache-Control: post-check=0,pre-check=0
               Thread main : Cache-Control: max-age=0
               Thread main : Pragma: no-cache
               Thread main : Connection: close
               Thread main : Content-Transfer-Encoding: Binary
               Thread main : Content-disposition: attachment; filename="tst.png"
               Thread main : Accept-Ranges: bytes
               Thread main : Content-Length: 27314
               Thread main : Content-Type: image/png
[17:34:19.421] Thread main : socket closed
[17:34:19.421] Thread main : Checking Size
[17:34:19.422] Thread main : connecting
[17:34:19.423] Thread main : localhost:80
[17:34:19.423] Thread main : localhost:80
[17:34:19.424] Thread main : GET /fs-debug.png HTTP/1.1
               Thread main : User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.77.4 (KHTML, like Gecko) Version/7.0 Safari/537.77.4
               Thread main : Host: bonell
               Thread main : Pragma: no-cache
               Thread main : Accept: */*
               Thread main : Connection: close
               Thread main : Cache-Control: no-cache
               Thread main : Range: bytes=4096-
               Thread main : Referer: http://bonell/
[17:34:19.462] Thread main : HTTP/1.1 206 Partial Content
               Thread main : Date: Mon, 14 Sep 2015 14:34:19 GMT
               Thread main : Server: Apache
               Thread main : X-Powered-By: PHP/5.3.28
               Thread main : Last-Modified: Mon, 14 Sep 2015 12:41:16 GMT
               Thread main : Cache-Control: no-cache, must-revalidate
               Thread main : Expires: Mon, 14 Sep 2015 14:34:19 GMT
               Thread main : Cache-Control: post-check=0,pre-check=0
               Thread main : Cache-Control: max-age=0
               Thread main : Pragma: no-cache
               Thread main : Connection: close
               Thread main : Content-Transfer-Encoding: Binary
               Thread main : Content-disposition: attachment; filename="tst.png"
               Thread main : Accept-Ranges: bytes
               Thread main : Content-Range: bytes 4096-27313/27314
               Thread main : Transfer-Encoding: chunked
               Thread main : Content-Type: image/png
[17:34:19.463] Thread main : saved to /Users/LINKeR/Downloads/fs-debug.1.png.folx/fs-debug.1.png

这个问题已经在评论中得到了回答,但我会在这里报告,以供将来参考

看起来Chrome,即使所有正确的标题都已就位(
Content Length
Accept Ranges:bytes
),也会禁用小文件的进度报告和下载恢复


尝试使用更大的文件,它应该可以工作。

通常,如果浏览器没有显示进度是因为缺少标题
内容长度
,请向我们显示您的PHP代码是的。通常。。但是我设置了:内容范围:字节4096-27313/27314内容长度:27314请查看。尝试使用更大的文件(一些MB),可能chrome不允许27KB文件的进度/恢复OOOHHHHH!!!!!你是对的!!!!谢谢顺便说一句,我检查了chrome downloader是如何工作的:我在脚本中使用了两个函数:“_showAll();”和“_showPartial($byteStart,$byteEnd);”。因此,通过这个操作“开始->暂停->恢复->暂停->恢复->完成”文件下载客户端使用“\u showPartial”功能,但是chrome看起来像是保持连接活动,并且在暂停时不下载内容。我通过在这些函数中编写日志发现了它。