Php 服务器端,获取发送文件的进度
基本上,我想做的是检查当客户端下载文件时,我的Web服务器向客户端发送了多少文件。这可能吗? apache是否提供任何模块/扩展来帮助我完成任务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)
我使用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%的文件,我可以执行另一个操作。