skobanev
@skobanev
Слепой ПЬЮ!

Скрипт скачивания файла средствами php / html / JS находящегося где то на сервере?

Добрый. Затупил страшно. Возможно и вопрос будет глупый.
Есть SERVER, на нем крутится локальный сайт ( web прога ). Есть файлы, находящиеся не в папке сервера. т.е. ссылку типа server.local/images/file.png на них не даш.
Как мне их скачать/сделать на них линки средствами PHP ?
В идеале на WEB странице должно быть скачивание по кнопке.
  • Вопрос задан
  • 2111 просмотров
Решения вопроса 1
Compolomus
@Compolomus Куратор тега PHP
Комполом-быдлокодер
Все очень просто, через скрипт
Делается папка вне корня сайта, пых туда все равно может ходить, делаем скрипт, который будет нам забирать эти файлы
Пример
$dir = '/var/www/loc/files/';

$file_id = $_GET['file'] ?? null;

if (file_exists($file = $dir . $file_id) {
    
header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="'.basename($file).'"');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    readfile($file);
    exit;
} else {
die('файла нет');
}

Ссылка будет script.php?file=image.png

Плюсы от этого
Можно ограничить доступ, например только кто зарегистрировался, ограничить скорость загрузки, прочие штуки, счётчик скачивании
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы