我正在编写一个 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);
我面临的问题:当用户单击下载按钮时,服务器将文件发送给用户。当用户下载文件时,用户再次点击下载按钮,请求现在没有执行(所有其他请求都无法执行)。当用户完全下载第一个文件时,开始第二个文件。