2011-12-24 20 views
2

我想做什麼Downloadify做這個的其他問題:How do I dynamically create a document for download in Javascript?動態創建和下載在Javascript的MP3沒有Flash

但我想做到這一點,而無需使用閃光燈。如何做到這一點?

+0

那麼,問題是什麼? – 2011-12-25 00:00:51

+1

您的標題說*沒有Flash *,但您的問題說*與Flash *。這是什麼? – 2011-12-25 00:08:39

+0

原來的問題用flash。所以我會認爲他的意思是沒有。 – tkone 2011-12-25 00:09:21

回答

3

我認爲你能做的最好的是這樣的:

function addDownloadLinkTo(elem, base64data) { 
    var link = document.createElement('a'); 
    var text = document.createTextNode('Download'); 
    link.appendChild(text); 
    link.setAttribute('href', 'data:application/octet-stream;base64,' + base64data); 
    elem.appendChild(link); 
} 

或者如果你使用jQuery,

$(elem).append($('<a href="data:application/octet-stream;base64,' + base64data + '">Download</a>'); 

其中base64data可以在this question獲得。

不幸的是,數據URI還沒有(AFAIK)提供一種機制來指定文件名;也可能不適用於所有瀏覽器。

+0

謝謝 - 這可以輕鬆地獲取我的文本文件。 我試着做cat file.mp3 | pbcopy,將其粘貼到我的base64數據生成中,但是在頁面上出現「未終止的字符串」錯誤,可能是因爲該貼片包含'和「字符。 – quantumpotato 2011-12-25 05:56:58

+0

我從文本編輯器中保存了foo.mp3並在vlc中打開。歌曲標題,但文件不會播放。0:00持續時間 – quantumpotato 2011-12-25 05:59:41

+0

哦,我以爲你在做* * JS。試試'openssl base64 -d -in file.mp3 -out file.base64' – Amadan 2011-12-25 06:14:03