6

我正在开发一个 Joomla 组件,其中一个视图需要将自身呈现为 PDF。在视图中,我尝试使用以下行设置内容类型,但是当我看到响应时,它仍然是 text/html。

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

如果我在常规 php 页面中执行此操作,一切都会按预期工作。看来我需要告诉 Joomla 使用 application/pdf 而不是 text/html。我该怎么做?

注意:设置其他标题,例如Content-Disposition,按预期工作。

4

3 回答 3

12

从 1.5 版开始,Joomla 有了 JDocument 对象。使用JDocument::setMimeEncoding()设置内容类型。

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

在您的特殊情况下,查看JDocumentPDF可能是值得的。

于 2008-09-25T17:51:13.543 回答
1

对于那些认为以上是一个非常古老的答案的人,我确认 JDocument::setMimeEncoding() 仍然有效,即使在 1.6 版本上(尚未在 1.7 上尝试过)。

于 2011-09-07T06:37:00.880 回答
0

我在 joomla 2.5 中遇到了同样的问题。在 joomla 管理面板中单击 8 小时后,我找到了解决方案。

  1. 登录您的 joomla 管理面板并单击媒体管理器
  2. 单击右上角的选项按钮。这将打开一个带有各种选项的配置选项卡
  3. 在合法文件扩展名、应用程序/pdf 或您需要的任何内容的框中。值用逗号分隔。 请注意,显然您必须根据我刚刚找到的论坛按字母顺序列出内容
  4. 点击保存按钮

您现在应该能够将 pdf 加载到媒体管理器中。希望这对你有用。我刚刚设置我的上传.mov扩展。

问题是它只工作了一次。现在,每当我导航到硬盘上的电影 .mov 文件时,浏览链接都不起作用。但如果我选择任何其他文件类型,它会这样做吗?

于 2012-12-17T19:34:43.023 回答