質問

Joomla コンポーネントを開発していて、ビューの 1 つが PDF としてレンダリングされる必要があります。ビューでは、次の行で content-type を設定しようとしましたが、応答を見ると、とにかく text/html です。

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

これを通常の PHP ページで実行すると、すべてが期待どおりに機能します。Joomla に text/html の代わりに application/pdf を使用するように指示する必要があるようです。どうすればいいでしょうか?

注記:他のヘッダーの設定 Content-Disposition, 、期待どおりに機能します。

役に立ちましたか?

解決

バージョン 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管理パネルにログインし、メディアマネージャーをクリックします。
  2. 右上隅にあるオプション ボタンをクリックします。これにより、さまざまなオプションを含む構成タブが開きます
  3. 法的なファイル拡張子、アプリケーション/PDF、または必要なものを入力するボックスにあります。値はカンマで区切られます。 私が見つけたフォーラムによると、どうやらアルファベット順にリストする必要があるようです。
  4. 保存ボタンをクリックします

これで、PDF をメディア マネージャーにロードできるようになります。これがうまくいくことを願っています。アップロードするように設定したところです .mov 拡張子。

問題は、それが一度しか機能しなかったことです。ハード ドライブ上のムービー .mov ファイルに移動するとき、参照リンクが機能しなくなりました。しかし、他のファイルタイプを選択するとそうなりますか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top