Xsendfile работает только из индексаPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Xsendfile работает только из индекса

Сообщение Anonymous »

Я пытаюсь отправить файл пользователю с помощью xsendfile в рамках кода Igniter.

Все установлено правильно, моя проблема в том, что это только кажется работать по маршруту, хотя каждая страница в любом случае поступает из index.php.

Это моя функция:

Код: Выделить всё

function _output_file($name, $root_location, $public_location = FALSE)
{
if (function_exists('apache_get_modules') && in_array('mod_xsendfile', apache_get_modules())) {
header ('Content-Description: File Transfer');
header ('Content-Type: application/octet-stream');
if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE") != FALSE) {
header ('Content-Disposition: attachment; filename='.urlencode($name));
} else {
header ('Content-Disposition: attachment; filename="'.$name.'"');
}
//86400 is one day
header ('Expires: '.gmdate('D, d M Y H:i:s', (TIME_NOW + 86400)));
header ('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header ('Pragma: public');
header ('X-Sendfile: '.$root_location);
exit;
} else {
redirect(site_url($public_location));
}
}
Если я помещу это в начало моего index.php и загружу корень, все будет работать нормально, но если я попытаюсь получить к нему доступ из домена.com/controller/function он возвращает ошибку 404.

Он определенно использует файл index.php, поскольку если я заменю вызов функции на die("test"); это отображается на экране.

Я считаю, что это как-то связано с тем, какие разрешения имеет xsendfile на доступ к файлу, но, поскольку он работает из корневого файла index.php, я бы думал, что у него будут полные разрешения, предположительно, это основано на URL-адресе запроса, что мне кажется странным.

Итак.... есть ли у кого-нибудь какие-либо предложения относительно того, как Я могу заставить xsendfile работать через codeigniter, с URL-адреса, например "domain.com/files/get/12"?

Подробнее здесь: https://stackoverflow.com/questions/748 ... from-index
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»