たとえば mp3 ファイルの場合、ユーザーにブラウザで開いてもらうか、右クリックして保存し、[リンクを名前を付けて保存] をクリックして保存するのは簡単です。
しかし、ユーザーが単純な左クリックでダウンロードする簡単な方法はありますか? mp3形式のままです。
ありがとう!
たとえば mp3 ファイルの場合、ユーザーにブラウザで開いてもらうか、右クリックして保存し、[リンクを名前を付けて保存] をクリックして保存するのは簡単です。
しかし、ユーザーが単純な左クリックでダウンロードする簡単な方法はありますか? mp3形式のままです。
ありがとう!
target=_blank
この目的のために指定された属性を持つ基本的な html リンクを持つことができます。
<a href="http://www.mysite.com/music.mp3" target="_blank">Download Link</a>
ブラウザに Greasemonkey をインストールし、mp3 ファイルをダウンロード可能なボタンに変更できるスクリプトを Greasepot で探すことができます。
基本的に、これを行う Web ページの JavaScript でできることは何もありません。ダウンロード リンクが機能する方法は、サーバーに HTTP ヘッダーを設定することです。通常のリソースをダウンロード可能なリソースに変更するヘッダーはContent-disposition
. 具体的には、次のように送信する必要があります。
Content-Disposition: attachment; filename=music_file_name.mp3
これにより、ブラウザはファイルを表示しようとするのではなく、「名前を付けて保存」するように強制されます。
明らかに、このヘッダーの設定方法は、サーバー、フレームワーク、プログラミング言語、または 3 つすべてによって異なります。PHP でこれを行う方法の例を次に示します。
http_send_content_disposition("music_file_name.mp3");
http_send_file("music_file_name.mp3");
HTML のリンクは同じままで、変更する必要がないことに注意してください。フォーム送信を使用してダウンロードすることもできます。
<a href="music_file_name.mp3">Download</a>
<form action="music_file_name.mp3">
<input type="submit" value="Download">
</form>
ブラウザがファイルをどのようにリクエストするかは問題ではありません。が「添付ファイル」として設定されている限りContent-disposition
、ファイルを保存するための「名前を付けて保存」ダイアログが表示されます。
ダウンロードページ(PHP)を作成し、mp3ファイルのあるフォルダに配置できます。ダウンロードページでこれを書きます:
<?
header('Content-disposition: attachment; filename= your_file.mp3);
readfile(your_file.mp3);
?>
your_file.mp3 の名前を mp3 ファイルの実際の名前に変更します。次に、作成したばかりのダウンロード ページへのリンクを配置します。リンクをクリックすると、ファイルがダウンロードされます。