我有一些文件试图通过使用标头下载到我的服务器上。它会找到该文件,但当它们为 2 到 3 MB 时,它只会下载 200 到 300 kb 的这些文件。我似乎无法将手指放在这个上。
这是我的代码。
我在文件 FYI 的开头有一个 ob_start 方法。
$fileName = $row['fileURL'];
$fileURL = 'powerpoints/' . $fileName;
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . $fileName);
header("Content-Transfer-Encoding: binary");
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($fileURL);
exit();
在下面编辑..修改代码
$fileName = $row['fileURL'];
$fileURL = 'powerpoints/' . $fileName;
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . $fileName);
header("Content-Transfer-Encoding: binary");
header('Cache-Control: must-revalidate');
header('Content-Length: ' . filesize($row['size']));
$fdl = fopen($fileURL, "r");
if ($fdl === false) {
die("Issue opening $fileURL");
}
while (!feof($fdl))
{
$buffer = fread($fdl, 4096);
print $buffer;
}
fclose($fdl);