Joomla で Content-type を設定するにはどうすればよいですか?
-
02-07-2019 - |
質問
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管理パネルをクリックして回った後、解決策を見つけました。
- joomla管理パネルにログインし、メディアマネージャーをクリックします。
- 右上隅にあるオプション ボタンをクリックします。これにより、さまざまなオプションを含む構成タブが開きます
- 法的なファイル拡張子、アプリケーション/PDF、または必要なものを入力するボックスにあります。値はカンマで区切られます。 私が見つけたフォーラムによると、どうやらアルファベット順にリストする必要があるようです。
- 保存ボタンをクリックします
これで、PDF をメディア マネージャーにロードできるようになります。これがうまくいくことを願っています。アップロードするように設定したところです .mov
拡張子。
問題は、それが一度しか機能しなかったことです。ハード ドライブ上のムービー .mov ファイルに移動するとき、参照リンクが機能しなくなりました。しかし、他のファイルタイプを選択するとそうなりますか?