完整文件传输后PHP执行功能

时间:2012-08-23 13:44:35

标签: php file buffer

我正在编写一个下载计数器,我想知道在缓冲区(这里是一个用readfile发送的文件)已经由服务器完全发送并由客户端接收之后是否可以执行代码。请注意我不能使用任何客户端语言,因为我直接传输文件(不使用XHR或/和FileSystem javascript API)。

以任何方式可行吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

  

在缓冲区(这里是一个用readfile发送的文件)已经由服务器完全发送后可以执行代码

是....

<?php
readfile($_GET['i_am_so_vuln']);
print "whoops!";

....真是太难了吗?

  

并由客户收到

不 - 因为你不这样做。它可以在中间网络上的多个点进行缓冲。 (甚至缓存)。

答案 1 :(得分:0)

如果是用户正在下载的文件,我认为你不能echo。我刚刚测试过。提示文件,它完成并且没有任何内容打印到浏览器。请务必注意,这可能取决于浏览器。

但是,如果您尝试将记录插入/更新到数据库或保存日志文件,则可以正常工作。

所以,我会说,你可以而且你不能。