1

プレイリストにいくつかの MP3 ファイルがあり、それぞれの横に次の形式のリンクがあります。

<a href="/music/track1.mp3"></a>

ユーザーはリンクを右クリックして、「リンクされたファイルをダウンロード」(またはブラウザの同等のオプション) を選択できます。

私が望むのは、ユーザーがリンクをクリックしたとき (標準の左クリック) にファイルを自動的にダウンロードし、[名前を付けて保存] ダイアログではなく、ユーザーのブラウザーの既定のダウンロード フォルダーにダウンロードすることです。

これを達成する最も簡単な方法は何ですか?

4

6 に答える 6

1

Content-Disposition attachmentHTTPヘッダーに追加するようにWebサーバーを構成する必要があります。Apacheでそれを行う方法の説明は次のとおりです

Mitch Satchwellが言ったように、これはサーバー側の言語でも実行できます。サーバー側の言語は十分に低いレベルで動作するため、HTTPヘッダーを変更できます。

于 2012-08-13T13:56:23.070 に答える
1

サーバー側の言語を使用するContent-Dispositionと、ユーザーがリンクをクリックしたときにダウンロードを強制するようにヘッダーを設定できますが、ブラウザーやユーザーのマシン上のファイルの保存場所を制御することはできません。これは、個々のユーザーの設定に依存します。

于 2012-08-13T13:58:28.783 に答える
0

ユーザーがすべてのダウンロードを要求するようにブラウザを設定している場合、これは不可能だと思います。

于 2012-08-13T13:55:10.717 に答える
0

これにより、最近のすべてのブラウザで多くの危険信号が発生します。
ファイルのダウンロードは、ファイルをダウンロードする際のセキュリティを保証するための名前を付けて保存機能を介して管理されます。
onclickをフォルダにダウンロードできるとしたら、クリックせずにダウンロードを停止するにはどうすればよいですか?

ただし、それでもこれを実現したい場合は、flashやactiveXなどのサードパーティコンポーネントを使用する必要がありますが、これらは最初にユーザーに特権(信頼)を付与するように求めます。

于 2012-08-13T13:56:44.807 に答える
0

これを行うには、リクエストを制御する必要があります。Web サーバー テクノロジに応じて、さまざまな方法で実行できます。やりたいことは、「Content-Disposition」HTTP ヘッダーを「attachment;」に設定することです。ファイル=いくつかのファイル」。これにより、ブラウザはこのファイルを「開く」のではなくダウンロードするように指示されます (可能な場合)。c# などの例は次のようになります。

response.AddHeader("Content-Disposition", "attachment; filename=downloadThisAudio.mp3"));

ただし、これは IIS と Apache の両方で構成することで実現できます。少しグーグルで調べてみると、このヘッダーを MP3 のみ、または条件付きで (ディレクトリごと、またはクエリ パラメーターが存在する場合など) に設定する方法を見つけることができると思います。

于 2012-08-13T13:59:44.103 に答える