服务器端,在发送文件方面取得进展

时间:2009-11-24 10:32:22

标签: php apache file progress fopen

基本上,我想要做的是检查我的网络服务器发送给客户端的文件有多少,当客户端下载一个文件时。这甚至可能吗? apache是​​否提供任何可以帮助我完成任务的模块/扩展?

我使用的是Linux发行版,apache2和php5。问候。

2 个答案:

答案 0 :(得分:0)

如果文件具有正确的“Content-length”标头集,则浏览器会提供此功能。你为什么要在你的页面中实现这个?

答案 1 :(得分:0)

解决了它。

我只是用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();

我需要设置header();在写出来之前,必须设置Content-length,Content-type和Content-Disposition,以便向客户端发送有效的标题和文件内容。

希望它有所帮助。