mp3 などのメディア ファイルへのリンクがあり、ファイルを再生するだけでなく、ユーザーがクリックしたときにダウンロードされるようにしたい。私が考えているページは、単純な静的 html ページです。
何か案は?
mp3 などのメディア ファイルへのリンクがあり、ファイルを再生するだけでなく、ユーザーがクリックしたときにダウンロードされるようにしたい。私が考えているページは、単純な静的 html ページです。
何か案は?
これを実現するにContent-disposition: attachment; filename=fname.ext
は、ファイルを送信する前に、お気に入りの言語のヘッダーを含むヘッダーを送信する必要があります。
サーバー構成をどの言語でどのように制御できるかなどの詳細を知らなければ、これ以上詳細な指示を与えることはできません. ただし、html と javascript だけではできません。
私はそれが不可能であることを知っています。適切なヘッダーを設定する機能がないと、ブラウザーはファイルの処理方法 (通常は再生) を決定します。ユーザーに、右クリックして名前を付けて保存を押すように依頼する必要があります。サーバーにアクセスできる場合は、.htacces を使用して php または apache でヘッダーを設定するのは非常に簡単です。
<FilesMatch "\.(?i:mp3)$"> ForceType オーディオ/mpeg ヘッダー セット Content-Disposition 添付ファイル </FilesMatch>
または、ブラウザはそれが MP3 であることを認識せず、それを開こうとさえしません:
<FilesMatch "\.(?i:mp3)$"> ForceType アプリケーション/オクテット ストリーム ヘッダー セット Content-Disposition 添付ファイル </FilesMatch>
PHP ヘッダーの設定については、http: //nl.php.net/headerを参照してください。
smazurov に同意すると、最終的にメディアの表示を制御することはできなくなりますが、Content-disposition によってそれが行われる場合があります。問題のヘッダーに関する RFCは次のとおりです。
クライアント側の JavaScript はそれを実現できません (最も近い機能はdocument.execCommand('SaveAs')
で、html ページ全体を保存するだけです)。
これは解決策ではありませんが、ファイル拡張子を MP3 以外に変更してください。そして、ダウンロードしたら名前を変更するようユーザーに依頼します。