我正在编写一个下载计数器,我想知道是否可以在缓冲区(这里是用readfile发送的文件)被服务器完全发送并被客户端接收后执行代码。请注意,我不能使用任何客户端语言,因为我直接传输文件(不使用XHR或/和FileSystem javascript API)。
这在任何方面都可行吗?
谢谢!
可以在缓冲区(这里是用readfile发送的文件)被服务器完全发送后执行代码
是的。。。。
<?php
readfile($_GET['i_am_so_vuln']);
print "whoops!";
这么难吗?
并由客户端接收
不,因为你不知道。它可以在介入网络上的多个点进行缓冲。(甚至缓存)。
如果是用户正在下载的文件,我认为您不能echo
任何内容。我刚测试过。系统会提示该文件,它会完成,并且没有任何内容打印到浏览器中。需要注意的是,这可能取决于浏览器。
但是,如果您尝试将记录插入/更新到数据库中或保存日志文件,它是有效的。
所以,我想说,你可以,你不能。