我编写了一个小型下载门户,我使用application / octet-stream下载文件。
function fu($filename)
{
header("Content-Type: application/octet-stream");
$save_as_name = basename($filename);
header("Content-Disposition: attachment; filename=\"$save_as_name\"");
readfile($filename);
}
当我下载大文件时,在下载完成之前无法浏览目录树。
有没有机会同时这样做?
答案 0 :(得分:0)
你可能正在使用会话。当您在窗口A中打开一个忙于提供下载的会话时,窗口B将无法获取任何页面,因为服务A的PHP进程仍然打开/锁定会话数据,而B正在等待该锁定被释放。
简单的解决方案是在致电readfile()
之前的某个时刻致电session_write_close()
。这会将会话提交到服务器上的磁盘,关闭它,然后释放锁,以便其他PHP进程可以重新选择它。