Как мне установить Content-type в Joomla?

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

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

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

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

Я могу подтвердить, что он все еще работает на Joomla 1.7.

Jan 24.02.2012 22:55
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
6
1
8 174
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

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

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

В вашем особом случае стоит взглянуть на JDocumentPDF.

Похоже, ссылка на JDocumentPDF мертва. Видимо в рамках v1.6 от него отказались. Здесь еще жива старая ссылка: api.joomla.org/1.5/Joomla-Framework/Document/JDocumentPDF.ht‌ ml

userfuser 04.05.2015 14:53

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

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

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

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

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

Другие вопросы по теме