2012-11-02 5 views
6

Attualmente stiamo lavorando per fornire agli utenti l'opzione di download per scaricare i file MP3. Stiamo sviluppando un'applicazione che esegue completamente nel sistema locale che nessun server è richiesto.Opzione di download del file tramite script client-client all'interno del sistema client

Ma il download di file mp3 non funziona nella maggior parte dei browser. Viene aperto nei lettori multimediali integrati nella maggior parte dei browser.

Abbiamo verificato le soluzioni per questo poiché otteniamo risposte come l'impostazione 'content-disposition' utilizzando l'intestazione nel lato server o utilizzando script PHP o ASP per renderlo scaricabile.

Ho anche controllato il plugin jquery filedownload.js. che aveva anche una sezione come impostare content-disposition e set-cookie.

Quindi voglio sapere è possibile creare un collegamento per il download di file (per MP3) * compatibile per tutti i browser che utilizzano solo script lato client come JavaScript o jQuery.

Nota importante:

In realtà il processo non sta scaricando file da un server, ma dal sistema client stesso.

Questo è il file MP3 deve copiare da una posizione (Directory) in un'altra posizione con nel sistema client.

+0

Giusto per accertarsi, non è possibile modificare le intestazioni del server da cui provengono gli mp3? – Dcullen

risposta

2

Questa soluzione richiede il supporto del browser di XHR2 (http://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html)

verrà scaricato il MP3 in un blob e poi creerà un URL per accedere al blob. Durante questo processo puoi sovrascrivere il Mimetype con qualsiasi cosa ti serva.

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(); 

L'esempio di JSfiddle richiede di aver disattivato la sicurezza Web nel browser per consentire una richiesta interdominio. http://jsfiddle.net/D2DzR/3/

+0

Grazie per la risposta Dcullen. stiamo verificando con il metodo XHR2. Ma non supporta i browser IE. Abbiamo altri metodi per lavorare con chrome e firefox. Abbiamo bisogno di un metodo per i browser IE. – Ranjithsun