2012-04-02 9 views
2

zipファイルの内容を変数に読み込もうとしたときに(& ajaxを使用して)、 ファイルをダウンロードするときのバイト数が少なくなります。例えばサイトの応答から読み取られたファイルが実際のファイルと完全に一致しない

:ファイルのサイズは573バイトですが、その内容を読んだ後に変数の長さが564

になりますこれは私の要求コードです:

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

変数に保存:

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

これがなぜ起こるのかを知るには助けになります。あなたはおそらく、HTTPリクエストにいくつかのスニッフィングを行う必要があり

おかげ

+0

メモリにロードしたファイルを保存するとどうなりますか?興味深い質問です。なぜなら、10バイトはあまりデータではないと推測しています。あなたのアプリケーションでファイルを読み込んだときに読み込まれていない、ウィンドウにファイルに関連付けられたメタデータがあるかもしれません。 – Purplegoldfish

+0

改行文字? – jfriend00

+0

@Purplegoldfish - 私はそれをメモリに保存すると、正しいバイト数が得られます。 – shuki

答えて

0

。 Chromeのインスペクタの[ネットワーク]タブはそのために便利です。 特に、サーバが返すヘッダContent-Lengthを確認してください。それは573または564バイトと言いますか? Content-Typeヘッダーも確認してください(application/zip)。

これらの値のいずれかが一致しない場合は、おそらく設定が必要なサーバーです。ファイルを別のサーバーに移動しようとしましたか?

関連する問題