簡體   English   中英

如何使用node.js從HTTP資源中提取ZIP文件

[英]How to extract a ZIP file from a HTTP resource with node.js

如何使用node.js從HTTP資源中提取ZIP文件?

我嘗試了以下代碼,但出現錯誤,指示ZIP文件可能已損壞(不是):

require('node-zip');
var request = require('request');

request('http://data.geo.admin.ch.s3.amazonaws.com/ch.meteoschweiz.swissmetnet/data.zip', function (error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log(new JSZip(body, {base64: false, checkCRC32: true}).files);
  }
})

錯誤:

錯誤:到達數據結尾(數據長度= 230973,要求的索引= 261475)。 拉鏈損壞?

request嘗試將內容解碼為文本,從而破壞您的數據。 嘗試:

request({
  method : "GET",
  url : "http://data.geo.admin.ch.s3.amazonaws.com/...",
  encoding: null // <- this one is important !
}, function (error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log(new JSZip(body).files);
    // handle error
    return;
  }
});

另請參見http://stuk.github.io/jszip/documentation/howto/read_zip.html (頁面底部的request示例)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM