Я пытаюсь принудительно загрузить файл в пользовательский компонент в Joomla 3. Действие моего контроллера имеет следующий код:
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();
$ file — это абсолютный путь к файлу, а Apache имеет «права на чтение».
Я проверил код в изолированном файле, и он отлично работает.
Заранее спасибо, ребята.
Добавление:
ob_clean();
flush();
До ReadFile($ file) решил мою проблему.
Других решений пока нет …