2

Drupal の Web サイトを持っていますが、ユーザーがファイルをダウンロードできなくなりました。(docx、xlsx など)。Firefoxでのみ、ユーザーがリンクをクリックしてファイルをダウンロードすると、ページにガベージ コードが表示されます。

他の場所で解決策を読んだのは、次を追加することですが、うまくいきませんでした。代わりに、ユーザーは、ページがリロードされるたびにアプリケーション タイプのダミー ダウンロードを求められます。

drupal_set_header('Content-type: application/octet-stream; charset=utf-8');

ファイルへのリンクを吐き出すページを持つ単純なモジュールがあります。このモジュールでは、上記を hook_init() 関数に追加しました。

ガベージ コードのスクリーンショット

以前にこの問題に遭遇したことはありません。なぜそれが始まったのかわかりません。もちろん、どんな助けも大歓迎です。誰かが回答を返す前に解決策を見つけた場合は、今後の参考のためにここに投稿します。

4

2 に答える 2

1

これにあなたのMIMEの役割を与えてください:

drupal_set_header('Content-type: application/force-download');
于 2013-01-06T23:41:13.910 に答える
0

これは、MIME タイプが正しく設定されていないために発生します。Drupal にcontent-type header適切な MIME タイプを設定させるか、サーバー側で設定することができます。

ファイルフォルダー(デフォルトではsites/default/files)の.htaccessファイルで行うことをお勧めします

以下のコードを .htaccess ファイルに入れるだけです (または、そこにない場合は新しい .htaccess ファイルを作成できます)。

AddType  application/octet-stream  .doc .xls .pdf

hook_init() は通常のページ要求ごとに起動されることに注意してください。このフックでは絶対にこれを行わないでください。そうしないと、多くの問題に直面することになります。

于 2013-01-07T05:26:28.670 に答える