Я сохраняю много документов вне webroot.
Я хочу щелкнуть ссылку, которая открывает новое окно (target = "_ blank"), и принудительно загрузить найденный файл.
Вот что я получил до сих пор, но мои результаты показывают, что в браузере всплывающее окно, а не принудительная загрузка на рабочий стол:
function download($filelocation){
$filename = basename($filelocation);
if (file_exists($filelocation)) {
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, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($filelocation));
ob_clean();
flush();
readfile($filelocation);
exit;
}
}
В новом окне браузера я просто называю эту функцию download()
с определенным путем к файлу.
Он определенно находит файл, но теперь мне просто интересно, чего мне не хватает в header () для принудительной загрузки файла через браузер.