10

URLが.plnまたは.psa拡張子のファイルを指している場合、Apache 2サーバーにブラウザにファイル転送ダイアログを強制的に開かせるにはどうすればよいですか?

CentOS 5、Apache 2、MYSQL 5、PHP 5、最近ビルドされたCentOS5.2i386インストールCDを備えたシンプルなLAMPサーバーがあります。私のWebアプリケーションは、ダウンロードしてカスタムアプリケーションにインポートするファイルを生成します。ファイル拡張子は.psaと.plnです。サーバーにブラウザにファイル転送ダイアログを強制的に開かせるにはどうすればよいですか?ブラウザでApache2サーバー上の.psaまたは.plnファイルを指定すると、ファイルの内容がポップアップウィンドウに単純なテキストとして表示されます。ファイル転送ダイアログが欲しいのですが。

私が取り組んでいるWebアプリは、別のWebサーバーにデプロイされ、必要に応じて.plnファイルと.psaファイルを処理します。稼働中のサーバーへの管理者アクセス権がないため、サーバー構成ファイルを比較できません。

サーバーの動作を変更するにはどうすればよいですか?これには、Webアプリコードのコード変更(明示的なヘッダーの送信など)が必要ですか?もしそうなら、なぜそれは他のサーバーに対して機能するのですか?サーバーのデフォルトの動作を構成することで、コードの変更を回避できますか?

どんな助けでもいただければ幸いです。

4

5 に答える 5

6

FilesMatchディレクティブを使用して、必要なヘッダーを追加できるはずです。

<FilesMatch "\.(?i:pin)$">
  Header set Content-Disposition attachment
</FilesMatch>
于 2008-12-29T18:06:32.307 に答える
0

ブラウザに何かを強制することは常にトリッキーな提案です。なぜなら、ブラウザはあなたを無視して、好きなことをすることができるからです:)

とはいえ、「Content-type」ヘッダーが「application / octet-stream」に設定されている場合、ほとんどのブラウザは「名前を付けて保存」ダイアログボックスでユーザーにプロンプ​​トを表示します。要求されたファイルを正しいヘッダーで提供する単純なラッパーcgiを作成するか、Apache2のmime-typesをいじります(configディレクトリを参照してください)。

これがお役に立てば幸いです、ハッピーハッキング(そしてハッピークリスマス、新年、またはあなたが祝うかもしれないものは何でも)

ミーシャ

于 2008-12-29T18:06:36.440 に答える
0

ああ、そのヘッダーの淡い馬については知りませんでした。元のMIMEタイプを保持できるので、おそらくそれがより良い方法です。それを覚えておく必要があります。

于 2008-12-29T18:08:25.577 に答える
0

明らかな効果がないいくつかの構成変更を試しました。

  1. /etc/httpd/conf/httpd.confファイルに次の行を追加しました。

AddTypeアプリケーション/オクテットストリーム.pln.psa

Apacheサーバーを再起動しましたが、効果がありませんでした。

  1. /etc/httpd/conf/httpd.confファイルに次の行を追加しました。ForceTypeapplication/octet-streamヘッダーセットContent-Disposition添付ファイルForceTypeapplication/octet-streamヘッダーセットContent-Disposition添付ファイルApacheサーバーを再起動しました。効果はありませんでした。
于 2008-12-29T18:13:54.130 に答える
0

Firefoxを使用している場合(そうでない場合は、なぜですか?)、Chris Pedericks開発者ツールバーをインストールし、ヘッダーが実際に正しく設定されていることを確認してください。もしそうなら、それはブラウザのせいかもしれません。私が言ったように、特定のブラウザが応答ヘッダーを「正しく」解釈することを確信することはできません。とにかくここで話しているブラウザは何ですか?

ヘッダーが正しく設定されていない場合は、httpd.confファイルを再確認する必要があります。追加したディレクティブが正しいセクションにない可能性がありますか?(たとえば、間違った<Location>ディレクティブの下で)

于 2008-12-29T18:24:09.370 に答える