我在php.net中發現了這個腳本,它允許用戶下載本地文件。每當我嘗試在文件名的前面使用協議時,PHP都找不到該文件。我在php.net中啓用了allow_url_fopen。我應該怎麼做才能允許遠程文件被下載?如何快速下載PHP中的遠程文件?
此外,即使在下載管理器的幫助下,下載速度也非常慢。我能做些什麼來提高下載速度嗎?有沒有辦法允許下載管理器中的「恢復下載」選項?
<?php
$file = 'https://www.example.com/test.exe';
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
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($file);
exit;
} else echo "file not found."
?>
如果文件緩慢下載,請嘗試增加可用於服務器或下載用戶的帶寬。運行這個腳本總是會讓它比用戶直接下載文件要慢 – Anigel
你不添加協議到附件頭沒有必要 –
@Anigel:抱歉,我必須不同意。中間人下載可以更快。 –