我目前正在使用以下 PHP 函数来允许用户选择一个文件然后下载它。这发生在 FTP 上。但是,如果用户选择了一个大文件,那么在下载过程中它会锁定服务器以接收任何其他请求。有什么方法可以在让 PHP 继续响应请求的同时托管文件?
我需要 PHP 来验证是否允许用户使用他们的凭据下载文件,因此我不能将其作为资产托管。该文件位于 FTP 服务器上。
function download($file) {
$fileStream = "";
if($this->get($file)) {
//Send header to browser to receive a file
header("Content-disposition: attachment; filename=\"$file\"");
header("Content-type: application/octet-stream");
header("Pragma: ");
header("Cache-Control: no-cache");
header("Expires: 0");
$data = readfile($this->downloadDir . $file);
$i=0;
while ($data[$i] != "")
{
$fileStream .= $data[$i];
$i++;
}
unlink($this->downloadDir . $file);
echo $fileStream;
exit;
} else {
return false;
}
}