使用PHP下载文件 - 一次只下载一个!

时间:2009-10-22 21:46:44

标签: php download header readfile

我有一个提供文件的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

1 个答案:

答案 0 :(得分:5)

这可能有不同的原因。

  • 您正在使用会话。因此,一次只允许一个脚本来修改会话。所以下载B只能在下载A完成后才能启动。您是否同时在浏览器A中下载A并在浏览器B中下载B,同时尝试两次下载?查看session_write_close

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

  • 某些OS / Web服务器设置,它只允许总数或每个主机的非常有限数量的打开并发连接