Php 服务器端,获取发送文件的进度

Php 服务器端,获取发送文件的进度,php,apache,file,progress,fopen,Php,Apache,File,Progress,Fopen,基本上,我想做的是检查当客户端下载文件时,我的Web服务器向客户端发送了多少文件。这可能吗? apache是否提供任何模块/扩展来帮助我完成任务 我使用linux发行版、apache2和php5。关于。如果文件的“内容长度”标题设置正确,浏览器将提供此功能。为什么要在页面中实现此功能?解决了此问题。 我只需用PHP打开要发送给客户端的文件 $fh = fopen($filePath, 'r'); 然后我通过写入计算文件大小的60% $fileSize = filesize($filePath)

基本上,我想做的是检查当客户端下载文件时,我的Web服务器向客户端发送了多少文件。这可能吗? apache是否提供任何模块/扩展来帮助我完成任务


我使用linux发行版、apache2和php5。关于。

如果文件的“内容长度”标题设置正确,浏览器将提供此功能。为什么要在页面中实现此功能?

解决了此问题。

我只需用PHP打开要发送给客户端的文件

$fh = fopen($filePath, 'r');
然后我通过写入计算文件大小的60%

$fileSize = filesize($filePath);
$sizeFirst = floor(($fileSize / 100) * 60);
现在$sizeFirst变量包含文件前60%的长度(以数值形式)。 要计算剩余的40%,我使用:

$sizeLast = $fileSize - $sizeFirst;
现在,我可以写出前60%,做我的动作,然后写出剩下的40%

$dataFirst = fread($fh, $sizeFirst);
echo($dataDirst);

// Do my action here.

$dataSecond = fread($fh, $sizeSecond);
echo($dataSecond);
exit();
我需要设置标题();在写出此内容之前,必须设置内容长度、内容类型和内容处置,以便向客户端发送有效的头和文件内容

$fh = fopen($filePath, 'r');

希望它对其他人有所帮助。

我想检查用户下载了多少文件的原因是,如果用户发送了超过60%的文件,我可以执行另一个操作。