3
我试图在为查看图像的每秒添加一行MySQL的时候提供图像。当页面发生变化时,PHP connection_aborted()不起作用
我在1024位数据块为它服务(总规模为图像是20KB)
的问题是,如果我加载在显示的图像的页面,然后关闭该窗口或点击链接这会将我带到脚本不断运行的其他页面,并且不会像应该那样使用die
。
ignore_user_abort(false);
$file = 'a.jpg';
header('Content-Type: image/jpeg');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
$conn = mysql_connect("localhost","user","pass");
mysql_select_db("mydb",$conn);
$fp=fopen($file,"rb");
$i=0;
while (!feof($fp)) {
print(fread($fp,1024));
sleep(1);
mysql_query("INSERT INTO table (VIEWTIME) VALUES ('$i')");
$i++;
flush();
ob_flush();
if (connection_aborted()) {
die();
}
}
我试图找到一个“服务器端”唯一的解决办法,因为我有一个使我不能用任何JS或任何客户端语言的一些技术限制。
你或许应该采取更好的表现出环路的连接(的mysql_connect/mysql_select_db)。至于这个问题,你可以用AJAX做,我不确定没有某种客户端检查是可能的。 – Ynhockey
在服务器可以闪烁之前,A20k文件将被加载。尝试使用20mb文件! –
嗨@Ynhockey感谢您的评论,我想保留这个服务器端,只是由于一些技术限制。 – user838437