簡體   English   中英

只有一個簡單的html和js文件,我怎么能強制鏈接到MP3下載而不是只是播放?

[英]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是不可能的。 正如其他人所說,你必須有權訪問服務器,以便在文件加載到瀏覽器之前影響文件的標題。

同意smazurov,最終你無法控制媒體的演示,盡管內容處理可能會為你完成。 這是有問題標題上RFC

客戶端JavaScript無法實現(最近的功能是document.execCommand('SaveAs') ,它只保存整個html頁面)。

使用谷歌我找到了一個帶有js的線程。 用來保存文件。 檢查出來 (2003年發布,沒有自己測試)。

最好的解決方案是使用php,asp或服務器支持的任何語言來解決這個問題;-)

雖然這不是解決方案,但請將文件擴展名更改為MP3以外的任何其他內容。 並且,要求用戶在下載后重命名。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM