Если вы хотите принудительно загрузить файл, вы можете использовать что-то вроде следующего:
<?php
// Fetch the file info.
$filePath = '/path/to/file/on/disk.jpg';
if(file_exists($filePath)) {
$fileName = basename($filePath);
$fileSize = filesize($filePath);
// Output headers.
header("Cache-Control: private");
header("Content-Type: application/stream");
header("Content-Length: ".$fileSize);
header("Content-Disposition: attachment; filename=".$fileName);
// Output file.
readfile ($filePath);
exit();
}
else {
die('The provided file path is not valid.');
}
?>
Если вы просто создадите ссылку на этот скрипт, используя обычную ссылку, файл будет загружен.
Кстати, приведенный выше фрагмент кода необходимо выполнить в начале страницы (до того, как произошли какие-либо заголовки или вывод HTML). Также позаботьтесь, если вы решите создать функцию, основанную на этом, для загрузки произвольных файлов. - вам нужно убедиться, что вы предотвращаете обратный путь в каталогах ( realpath удобно), разрешаете загрузку только из определенной области и т. д., если вы принимаете ввод из $ _GET или $ _POST.