2012-04-02 2 views
2

Beim Versuch, den Inhalt einer Zip-Datei in eine Variable zu lesen (mit JavaScript & AJAX), Ich bekomme weniger Bytes als beim Herunterladen der Datei.Datei gelesen von einer Website Antwort stimmt nicht vollständig mit der tatsächlichen Datei

Zum Beispiel: die Dateigröße ist 573 Bytes, aber die Länge der Variable nach dem Inhalt sein wird Lesen 564.

Das ist mein Anforderungscode:

getRequest : function(Url, params, _success, _error) { 
     var Url = Url; 
     var paramsString = this.encodeParams(params); 
     if (ParamsString != "") { 
      Url = Url + "?" + ParamsString; 
     } 
     var RequestHeaders = this.getHeaders(); 

     $.ajax({ 
      type : "GET", 
      url : Url, 
      headers : RequestHeaders, 
      success : function(data, textStatus) { 
       _success(data); 
      }, 
     error : function(jqxhr, textStatus, errorThrown) { 
      _error(jqxhr.responseText); 
      } 
    }); 
} 

einen Variablen Speicher:

getRequest(url,{}, 
    function(data){zipContents=data}, 
    function(data){alert(data)}); 

Ich würde jede Hilfe bei der Ermittlung, warum dies geschieht, zu schätzen wissen.

Dank

+0

Was passiert beim Speichern der Datei, die Sie in den Speicher geladen haben? Es ist eine interessante Frage, da 10 Bytes sind nicht viele Daten im es gibt möglicherweise einige Metadaten mit der Datei in Windows verbunden, die nicht eingelesen wird, wenn Sie die Datei in Ihrer Anwendung laden – Purplegoldfish

+0

Könnte es einige Unterschiede in Zeilenumbruch Zeichen sein ? – jfriend00

+0

@Purplegoldfish - Wenn ich es im Speicher speichere, erhalte ich die korrekte Bytezahl. – shuki

Antwort

0

Sie wahrscheinlich einige Schnüffeln an den HTTP-Anforderungen zu tun haben. Die Registerkarte "Netzwerk" im Inspektor von Chrome ist dafür nützlich. Überprüfen Sie insbesondere den Header Content-Length, den der Server zurückgibt. Sagt es 573 oder 564 Bytes? Überprüfen Sie auch die Content-Type Header - es sollte application/zip sein.

Wenn Sie einen dieser Werte nicht finden, ist wahrscheinlich der Server zu konfigurieren. Haben Sie versucht, Ihre Dateien auf einen anderen Server zu verschieben?

Verwandte Themen