【问题标题】:How to extract a ZIP file from a HTTP resource with node.js如何使用 node.js 从 HTTP 资源中提取 ZIP 文件
【发布时间】:2014-06-27 06:04:27
【问题描述】:

如何使用 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)。损坏的拉链?

【问题讨论】:

    标签: javascript node.js


    【解决方案1】:

    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 示例)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-19
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 2015-02-12
      相关资源
      最近更新 更多