[英]with just a plain html and js file, how can i force a link to an mp3 to download instead of just play?
我有一個媒體文件的鏈接,如mp3,我想讓它在用戶點擊它時下載,而不是只是播放文件。 我想到的頁面只是一個簡單的靜態html頁面。
有任何想法嗎?
為了實現這一目標,您需要發送帶有Content-disposition: attachment; filename=fname.ext
的標頭Content-disposition: attachment; filename=fname.ext
發送文件之前,您喜歡的語言中的Content-disposition: attachment; filename=fname.ext
標頭。
如果不知道具體內容,例如您對服務器配置的語言和控制,我就無法為您提供更詳細的說明。 但是你不能用html和javascript來做到這一點。
我知道這是不可能的。 如果沒有設置相應標題的能力,瀏覽器將決定如何處理文件(通常是播放),您必須要求用戶按,右鍵單擊+另存為。 如果您可以訪問服務器,使用.htacces在php或apache中設置標頭非常簡單
<FilesMatch "\.(?i:mp3)$"> ForceType audio/mpeg Header set Content-Disposition attachment </FilesMatch>
或者說瀏覽器不會識別它是MP3,甚至不會嘗試打開它:
<FilesMatch "\.(?i:mp3)$"> ForceType application/octet-stream Header set Content-Disposition attachment </FilesMatch>
對於php標頭設置,請參閱: http : //nl.php.net/header
<a href="linkto.mp3" download>Download MP3 File </a>
如果您希望強制它們從鏈接download
,則將download
屬性添加到link元素(filename可選):
<a href="file.mp3" download="Song_Name.mp3">Download</a>
如果您希望用戶在以任何方式訪問URL時被迫下載文件,那么您就不走運了。 僅使用HTML和JS是不可能的。 正如其他人所說,你必須有權訪問服務器,以便在文件加載到瀏覽器之前影響文件的標題。
客戶端JavaScript無法實現(最近的功能是document.execCommand('SaveAs')
,它只保存整個html頁面)。
使用谷歌我找到了一個帶有js的線程。 用來保存文件。 檢查出來 (2003年發布,沒有自己測試)。
最好的解決方案是使用php,asp或服務器支持的任何語言來解決這個問題;-)
雖然這不是解決方案,但請將文件擴展名更改為MP3以外的任何其他內容。 並且,要求用戶在下載后重命名。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.