无法下载多个文件

时间:2012-11-21 09:50:11

标签: php html download

我正在编写一个php页面,用于将文件从服务器下载到用户。这是我的代码:

  clearstatcache();
  //Output stream to client
  header("Pragma: public");
  header("Expires: 0");
  header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  header("Cache-Control: private", false);
  header("Content-Type: application/zip");
  header("Content-Disposition: attachment; filename=\"" . $zipName . "\"; filename*=utf-8''" . rawurlencode($zipName) . ";");
  header("Content-Transfer-Encoding: binary");
  header("Accept-Ranges: bytes");
  header("Content-Length: " . (filesize($downloadFile)));


  $fp = fopen($downloadFile, "rb");
  ob_clean();
  while (!feof($fp) && ( connection_status() == 0 ) && !connection_aborted()) {
    print( fread($fp, 1024 * 1024));
    flush();
    ob_flush();
  }
  fclose($fp);

我遇到的问题是:当用户点击下载按钮时,服务器会将文件发送给用户。当用户下载文件时,用户再次单击下载按钮,请求现在不执行(所有其他请求都无法执行)。当用户完全下载第一个文件时,第二个文件开始。

1 个答案:

答案 0 :(得分:1)

通常,当您使用会话时会发生这种情况。看看这个post。如果您不需要会话 - 只需将其转为下载页面即可。或者,如果您需要它 - 在脚本开头获取所需的所有值并立即关闭会话。这将允许执行另一个脚本。