Php 计算完全下载的文件

Php 计算完全下载的文件,php,apache,nginx,download,Php,Apache,Nginx,Download,是否可以使用nginx或apache(后端为php,但nginx提供文件)仅计算全部文件下载(当用户单击“保存对话框时接受”时)?纯php解决方案可能如下所示(简化): 可以将url重写为以下内容: http://yourserver.com/download/... 谢谢这个解决方案非常简单,但是php提供的文件会占用大量内存。对服务器解决方案有什么建议吗?我们在视频服务器上使用了该解决方案,在高负载环境中提供>5GB的文件。没有内存问题。脚本不会消耗与下载文件大小一样多的内存。实际上,使用

是否可以使用nginx或apache(后端为php,但nginx提供文件)仅计算全部文件下载(当用户单击“保存对话框时接受”时)?

纯php解决方案可能如下所示(简化):

可以将url重写为以下内容:

http://yourserver.com/download/...

谢谢这个解决方案非常简单,但是php提供的文件会占用大量内存。对服务器解决方案有什么建议吗?我们在视频服务器上使用了该解决方案,在高负载环境中提供>5GB的文件。没有内存问题。脚本不会消耗与下载文件大小一样多的内存。实际上,使用此函数不会产生任何内存问题。是的,否则它的设计会很糟糕。我会用这个。除了计算下载量之外,您还可以收集其他信息。您还可以动态生成或操作可下载的内容。@dzubchik但您还应该注意一件事:当涉及到大量下载时,暂停和恢复下载的可能性对于客户端来说很重要<代码>读取文件()在这种情况下不会出现问题,因为您无法指定字节偏移量。如果要支持暂停/恢复,请获取http头的字节偏移量,然后使用具有适当缓冲区大小的
fopen()、fseek()、fread()和echo
。这将是最好的解决办法-
http://yourserver.com/download.php?file=...
http://yourserver.com/download/...