Как отдать статический файл с сервера через PHP скрипт?

Задача:
Есть файл на сервере /file.pdf
Как можно скачать этот файл через PHP скрипт?
Приходит решение в лоб — выкачать файл с сервера с помощью file_get_contents, а затем вывести с нужными заголовками, однако если файл будет слишком большой, то скрипт будет выполняться очень долго.
Мне это нужно, чтобы пользователь не мог знать прямую ссылку на файл, а также, чтобы разграничить доступ к файлу.

Как можно быстро вывести данный файл?
  • Вопрос задан
  • 3139 просмотров
Решения вопроса 1
tzlom
@tzlom
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
FanatPHP
@FanatPHP
Чебуратор тега РНР
Let me google it for you: google.com/search?q=отдать+файл+PHP
очень сложный поисковый запрос, правда?

А, главное, найдет тебе статьи, написанные какими-то левыми людьми.
То ли дело задать вопрос на тостере, и получить ответ от корифеев, строчащих ответы между ковырянием в носу и выпрашиванием у мамки прощения за очередную двойку.
Ответ написан
nazarpc
@nazarpc
Open Source enthusiast
ob_implicit_flush(true)+fread()
Нужно пробовать, но если будет Nginx + PHP-FPM то должно подойти.
Ответ написан
Комментировать
Почему бы не сделать это же через mod_rewrite? А ещё вас может заинтересовать такая штука как функция fpassthru.
Ответ написан
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
На shared хостингах - только решение в лоб, через чтение в память и отдачу наружу.
На своем сервере/vps - правильно поставить фронтом nginx и использовать заголовок x-accel-redirect
www.opennet.ru/base/net/nginx_x_accel_redirect.txt.html

Работает отлично
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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