2

我有一个提供文件的 PHP 文件,但问题是无论使用什么浏览器,如果您单击 2 个指向 2 个单独文件的链接,则在第一个完成之前不会开始第二次下载!有任何想法吗?

下载代码

header('Content-Type: application/octet-stream');
header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename="'.basename($filename).'"');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($fullpath));
readfile($fullpath);

示例链接

  • 链接1:download.php?downloadfile=1
  • 链接2:download.php?downloadfile=2
4

1 回答 1

5

这可能有不同的原因。

  • 您正在使用会话。因此一次只允许一个脚本修改会话。所以下载 B 只能在下载 A 完成后开始。您是否同时尝试了两次下载,在浏览器 A 中下载 A 并在浏览器 B 中下载 B?检查session_write_close的描述

  • 其他一些 HTTP 问题,您的浏览器不会打开到服务器的多个连接,而是重用单个连接,这种方式当然必须等到第一个请求完成。

  • 某些 OS/Webserver 设置仅允许总数或每个主机的打开并发连接数量非常有限

于 2009-10-22T22:01:36.303 回答