2016-04-18 6 views
0

* .exeファイル用の自動インストーラを作成しようとしています。私はnode-webkitを使用しています。私のunzipperは解凍-zipです。私はAJAX経由でインストーラをダウンロードしています:Node WebKitアプリのdocompress-zipはダウンロードしたファイルを解凍できません。WinRARによる "破損"ファイルダウンロード

$.ajax({ 
    type: "GET", 
    url: 'https://mywebste.com/SyncCtrl.zip', 
    contentType: "application/zip;", 
    success: function (dat) { 
     console.log(dat) 
     fs.writeFile("./SyncCtrl.zip", dat, function() { 
     console.log(dat) 
     }) 
    }, 
    error: function (err) { 
     console.log(err) 
     fs.writeFile("./SyncCtrl.zip", err.responseText, function() { 

     }) 
    } 
    }) 

.zipはerr.responseTextの内容で書かれています。私はこれがベストプラクティスではないことを知っていますが、レスポンスコードが200であっても、成功コールバックに入れることはできませんでした。これは別の質問です。

私は、ディスクへの.zipファイルを作成した後、私は認証要求を待ち、その後、成功コールバックでそれを解凍します

var unzip = new dc("./SyncCtrl.zip") 

     unzip.on('error', function (err) { 
      console.log("Something went terribly wrong.") 
      console.log(err) 
     }) 

     unzip.on('extract', function (log) { 
      console.log("Finished!") 
      console.log(log) 
     }) 

     unzip.on('progress', function (i, c) { //index, count (irrelevant for single file) 
      console.log("Extraction progress.") 
     }) 

     unzip.extract({ 
      path: "./SyncCtrl" 
     }) 

これは解凍ジップgithubのページから直接ほぼコピー/貼り付けられます。これは失敗し、エラーハンドラで次のように出力されます。

Error {message: "File entry unexpectedly large: 80606 (max: 4096)"} 

この制限はMB単位です。これは両方の場所でディスク上のファイルサイズが抽出しようとしているファイルの1.7MBであるため、非常に混乱します。どんな助けでも大歓迎です。

答えて

0

これを実行する最善の方法は、静的ファイルをストリームとして解釈することです。

var file = fs.createWriteStream("./MOCSyncCtrl.zip"); 
    var request = https.get("https://moc.maps-adr.com/MOCSyncCtrl.zip", function (response) { 
    response.pipe(file); 
    }); 
:単純に、これは私の作業ノードWebKitのコードで、サーバー上の静的ファイルを使用して

関連する問題