Кажется, я не могу найти много документации по X-Sendfile или примера кода для PHP (есть код рельсов).
Кто-нибудь использовал его раньше и не мог бы дать быстрый фрагмент кода и краткое описание?






X-Sendfile - это HTTP-заголовок, поэтому вам нужно что-то вроде этого:
header("X-Sendfile: $filename");
Ваш веб-сервер подхватывает его, если он правильно настроен. Вот еще некоторые подробности:
http://www.jasny.net/articles/how-i-php-x-sendfile/
Для будущих читателей: XSendFileAllowAbove устарел; использовать XSendFilePath
Если настройка конфигурации веб-сервера невозможна, рассмотрите стандартный PHP функция readfile (). Это будет не так быстро, как отправка файлов, но с большей совместимостью. Также обратите внимание, что при этом вы также должны отправить как минимум заголовок Content-Type.
Обратите внимание, что если вы используете readfile(), у вас не будет поддержки для возобновления или частичной загрузки (Request-Range) или клиентского кеширования (т.е. возврата 304 Not modified при необходимости) (или вам нужно будет справиться со всем этим самостоятельно с помощью кода PHP - там должны быть какие-то фрагменты кода, которые именно это делают).
Я следовал руководству по ссылке, но когда я загружаю файл с помощью mod-xsend, я получаю размер файла Binary File (0 байт) ... Что я делаю не так? ОБНОВЛЕНИЕ: разобрался сам. Мне нужно было добавить
#enable sending files from parent dirs->XSendFileAllowAbove Onв мой файл .htaccess, так как мои загрузки находятся вне папки webroot.