Как установить тип контента в Joomla?

Я разрабатываю компонент Joomla, и одно из представлений должно отображаться как PDF. В представлении я попытался установить тип контента со следующей строкой, но когда я вижу ответ, это текст/html в любом случае.

header('Content-type: application/pdf');

Если я делаю это на обычной странице php, все работает так, как ожидалось. Кажется, мне нужно сказать Joomla использовать application/pdf вместо text/html. Как я могу это сделать?

Примечание: установка других заголовков, таких как Content-Disposition работает ожидаемый.

3 ответов


начиная с версии 1.5 Joomla имеет объект JDocument. Использовать JDocument::setMimeEncoding() для установки типа контента.

$doc =& JFactory::getDocument();
$doc->setMimeEncoding('application/pdf');

в вашем частном случае, посмотрите на JDocumentPDF может быть стоящее.


для тех из вас, кто думает, что это очень старый ответ, я подтверждаю, что JDocument::setMimeEncoding() все еще работает, даже на версии 1.6 (еще не пробовал ее на 1.7).


У меня была такая же проблема в joomla 2.5. После 8 часов щелчка по панели администратора joomla я нашел решение.

  1. войдите в админ панель joomla и нажмите на media manager
  2. Нажмите кнопку Параметры в правом верхнем углу. Откроется вкладка конфигурация с различными параметрами
  3. в поле для юридических расширений файлов, приложений / pdf или все, что вам нужно. Значения разделяются запятой. внимание, видимо у вас в список вещей в алфавитном порядке форум Я нашел
  4. нажать кнопку "Сохранить"

теперь вы сможете загружать PDF-файлы в media manager. Надеюсь, это сработает. Я просто настроил свой, чтобы загрузить .mov расширения.

проблема в том, что он работал только один раз. Теперь ссылка browse не работает, когда я перехожу к фильму .mov файл на моем жестком диске. Но это так, если я выбираю любой другой тип файла ?