Php 应用程序/八位字节流块浏览器

Php 应用程序/八位字节流块浏览器,php,download,Php,Download,我已经编写了一个小型下载门户,我使用application/octetstream下载文件 function fu($filename) { header("Content-Type: application/octet-stream"); $save_as_name = basename($filename); header("Content-Disposition: attachment; filename=\"$save_as_name\"");

我已经编写了一个小型下载门户,我使用application/octetstream下载文件

function fu($filename)
{
     header("Content-Type: application/octet-stream");  
     $save_as_name = basename($filename);   
     header("Content-Disposition: attachment; filename=\"$save_as_name\""); 
     readfile($filename);   
}
下载大文件时,在下载完成之前,无法浏览目录树


是否有机会并行执行此操作?

您可能正在使用会话。当您在窗口a中打开一个会话,而该会话正忙于服务于下载窗口时,B将无法获取任何页面,因为服务于a的PHP进程仍然打开/锁定会话数据,而B正在等待释放该锁


简单的解决方案是在调用
readfile()
之前的某个时间点调用。这将把会话提交到服务器上的磁盘上,关闭它,然后释放锁,以便其他PHP进程可以将其恢复。

您在服务器上还是在客户端浏览目录树?这是一个单独的PHP网站,它使用readdir()查看目录树。您使用会话吗?用于哪种用途?一般来说:是的,我知道你在运行下载时是否打开了一个会话?如果是的话,在那种情况下你能不打开一个吗?会话打开的脚本正在阻止Hi Sammitch,谢谢您的回答。我将在周末测试session_writed_close(),并给您反馈。