2013-02-13 7 views
7

Supponendo che un server non possa rispondere alle richieste degli utenti. Tuttavia, uno sviluppatore web crea uno myfile.txt.gz e lo memorizza allo http://www.mysite.com/myfile.txt.gz.Come avere un browser gunzip un file di testo gziped scaricato Ajax?

È possibile avere il browser automaticamente gunzip questo file di testo compresso come parte della richiesta Ajax e memorizzare il risultato in un var? Se sì, come?

Sono aperto ad altri algoritmi di compressione, se necessario.

Aggiornamento

Sto cercando di utilizzare il seguente JQuery Ajax chiamata:

var fetch = function() { 

    $.ajax({ 
     type: 'GET', 
     url: "./data.txt.gz", 
     headers: { "Accept-Encoding" : "gzip" }, 
     dataType: "text", 
     async: true, 
     success: function(result) { 
      $("#midEnglob").text(result); 
     }, 
     error: function(jqXHR, textStatus, errorThrown) { 
      alert("Issue: " 
       + textStatus + " " 
       + errorThrown + " !"); 
     } 

    }); 

} 

ma ottengo il seguente nel browser:

enter image description here

Tutte le idee?

+0

Non sono sicuro, ma se si impostano le intestazioni su 'Content-type: text/plain' e' Content-encoding: gzip', potrebbe funzionare. Ecco come vengono spedite le pagine HTML con gzip. Probabilmente dovresti prima controllare l'intestazione 'Accept-Encoding'. –

+0

Sto provando ma non sembra funzionare. Hai un esempio di codice operativo? – JVerstry

+0

Tutto il codice che ho suggerito sarebbe sul lato server. Quale lingua lato server (se esiste) stai usando (conosco solo PHP)? Non dovresti fare nulla di speciale in JavaScript, basta fare una chiamata AJAX come faresti normalmente. Se il browser supporta gzip e il server invia l'intestazione Content-encoding, lo decomprimerà automagicamente. –

risposta

4

lasciare che il browser lo comprima con Content-Encoding: gzip è probabilmente il migliore. Nel caso in cui non funzioni per il tuo scenario, ci sono molte implementazioni LZW in javascript come: https://gist.github.com/revolunet/843889

potresti dover provare diverse implementazioni, non ho controllato nessuno di loro.

+1

Non controllo la codifica del contenuto sul lato server ... Come posso recuperare il contenuto binario dall'Ajax? – JVerstry