2010-11-17 20 views

答えて

5

リンクを変更することでこれを行うことはできません。ファイルを提供するHTTPサーバーに "application/octet-stream"のContent-Typeを送信させる必要があります。おそらく、それはMP3コンテンツであることをブラウザに示唆している "audio/mpeg"というタイプを送信していると思われる。このヘッダーを変更する能力がなければ、これを達成することはできません。

+1

また、 'Content-Disposition'と' Content-Transfer-Encoding'ヘッダー(そしておそらくもっと)。 – karim79

+4

'Content-Disposition'は効果的に' Content-Type'にかかわらず、ブラウザを強制的に強制します(あるいはとにかく、すべてのブラウザがうまくいくわけではありません)。 – cdhowie

-1

でプレイヤーを開設しましたサーバーがHTTP応答を生成すると、ブラウザーはさまざまなタイプの応答で何をすべきかを決定します。通常、ブラウザがダウンロードする唯一のファイルは、表示できないファイル.zipです。

+0

これは実際の動作ではありません。 – cdhowie

+1

はい、サーバーへのアクセスがないと仮定すると、ユーザーエージェントだけが応答の処理方法を決定します。 –

3

サーバがPHPをサポートしている場合は、ファイルIDまたはファイル名のパラメータをとる「getfile.php」(または同様のもの)というPHPスクリプトを作成します。スクリプト内でcontent-typecontent-dispositionヘッダーを設定して、強制的にダウンロードプロンプトを表示します。

参照:ソリューションherehttp://webdesign.about.com/od/php/ht/force_download.htm

2

たくさん。ここでは基本的な考え方です:

  • 使用Javascriptが要求を受信するサーバー
  • へ(AJAX)要求を行うために、このスクリプトは、新しいページ
  • に一時的にブラウザをリダイレクトするスクリプト
  • を実行します
  • 新しいページが添付ファイルを期待するには、ブラウザを伝えるいくつかのヘッダを持っており、添付ファイルの種類には、
  • あるダイアログがポップアップし、元のページがまだ画面上で「名前を付けて保存」
0

私は間違っているかもしれないが、私は他のファイルタイプを持つ前に、同じ問題を持つ人々を見てきましたが、彼らは以下のコードを使用:これはあなたのために働く

<FilesMatch "\.(?i:mp3)$"> 
    ForceType application/octet-stream 
    Header set Content-Disposition attachment 
</FilesMatch> 

希望を!