Я настоятельно рекомендовал использовать XSendfile, так как мы обслуживаем довольно большие файлы с нашего сервера.На сервере работает Cpanel.Ранее мы использовали прямой скрипт принудительной загрузки, который также не работал в некоторых браузерах.В надежде убить двух зайцев одним выстрелом с помощью XSendfile.
ОК, значит, наш хост включил Xsendfile на нашем сервере.Я написал скрипт быстрого теста:
$file = "/home/deli/central/testfile.doc";
header("X-Sendfile: $file");
header("Content-type: application/octet-stream");
header('Content-Disposition: attachment; filename="' . basename($file) . '"');
exit;
Когда я запускаю это, я получаю приглашение на загрузку.Но отправляемый файл всегда имеет размер 0 КБ.
Немного исследований. Кажется, вам нужно настроить различные параметры в файле конфигурации apache или в файле htaccess.Мне также сказали, что не стоит добавлять его в конфигурацию apache, иначе оно может быть перезаписано при обновлении.Я бы предпочел сделать это в htaccess, поскольку у меня нет прямого доступа к конфигурации apache, и я предпочел бы иметь контроль, который должен предлагаться с помощью htaccess.
ЕСЛИ я могу заставить его работать,конечно.
Итак, я добавил в файл htaccess следующее:
XSendFile в XSendFilePath / home / deli / central XSendFileAllowAbove On
(Относительный путь отсценарий для центрального каталога файлов: ../../deli/central)
Если я добавлю эти строки в htaccess и поместу его в каталог public_html (тот же каталог, что и сценарий тестирования), когдаЗатем я запускаю тестовый скрипт и получаю ошибку 500.Быстрый просмотр журналов ошибок показывает:
/ home / north / public_html / .htaccess: XSendFilePath здесь не разрешен
Может ли кто-нибудь объяснить мне, что я могу делать неправильно?
ps - я только что прочитал, что гораздо эффективнее это сделать в конфигурации apache, поэтому серверу не нужно сканировать и загружать все файлы htaccess.Не знаю, правда ли это или нет.
Помощь очень ценится, это что-то вроде showtopper в проекте:)
ps Я забыл упомянуть - если я поставлюпри прямой принудительной загрузке в сценарий, используя тот же путь к файлу $, файл загружается просто отлично.Так что путь кажется правильным.