2012-11-02 26 views
6

我們目前正致力於爲用戶提供下載選項以下載MP3文件。 我們正在開發一個在本地系統中完全執行的應用程序,不需要服務器。在客戶端系統中使用客戶端腳本的文件下載選項

但下載mp3文件選項在大多數瀏覽器中不起作用。它在大多數瀏覽器的內置媒體播放器中打開。

我們已經檢查瞭解決方案,因爲我們得到的答案就像在服務器端使用頭文件設置'content-disposition'或使用PHP或ASP腳本使其可下載。

我也檢查過jquery filedownload.js插件。也有一個像設置內容配置和設置cookie的部分。

所以我想知道是否有可能創建一個文件下載鏈接(對於MP3)*兼容所有瀏覽器只使用客戶端腳本如Javascript或jQuery。

重要提示:

其實過程不從服務器,而是從客戶端系統本身來下載文件。

這就是MP3文件應該從一個位置(目錄)複製到客戶端系統中的另一個位置。

+0

只是爲了確定,你不能更改mp3的來源服務器的標題? – Dcullen

回答

2

該解決方案需要瀏覽器支持XHR2的(http://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html)

它將下載的MP3成團塊,然後將創建一個URL,您可以訪問該blob。在這個過程中,您可以將Mimetype重寫爲任何您需要的內容。

window.URL = window.URL || window.webkitURL; 

    var xhr = new XMLHttpRequest(); 
    xhr.open('GET', 'http://robtowns.com/music/blind_willie.mp3', true); 
    xhr.responseType = 'blob'; 
    xhr.overrideMimeType('application/octet-stream'); 
    xhr.onload = function(e) { 
     if (this.status == 200) { 
      var blob = this.response; 
      $('#link').html('<a href="'+window.URL.createObjectURL(blob)+'">Download</a>'); 
     } 
    }; 

    xhr.send(); 

JSfiddle示例要求您關閉瀏覽器中的Web安全性以允許跨域請求。 http://jsfiddle.net/D2DzR/3/

+0

感謝Dcullen的迴應。我們正在使用XHR2方法進行檢查。但它不支持IE瀏覽器。我們有其他方法可以使用chrome和firefox。我們需要一種適用於IE瀏覽器的方法。 – Ranjithsun