【问题标题】:Save .zip or .rar file from raw data returned by http request从 http 请求返回的原始数据中保存 .zip 或 .rar 文件
【发布时间】:2019-04-07 16:56:22
【问题描述】:

我正在尝试使用 request-promise 包从 http 请求返回的原始数据中保存一个文件(.rar 或 .zip)。

原始数据示例:

    PK   ��bM            -   legendas_tv_20181102222115212/Legendas.tv.url%�1�0�@���,d���:U�Lѯ5ޓ�U�oJ����� �[8��V�����V��c�d7Z��Y�VW�>�T��t �\�>#e��W$� ��{(UU���8~�PKq���r   }   PK 

示例代码:

    const fs = require('fs');
    const rp = require('request-promise').defaults({jar: true});

    rp.get(options).then(function(res){
            console.log(res.headers);

            ficheiro = res.body;

            //Tried this method and doesn't work either
            //ficheiro = new Buffer(res.body);

            file = fs.writeFile("teste5.zip", ficheiro, function(err) {
                if(err) {
                    console.log(err);
                } else {
                    console.log("The file was saved!");
                }
            });
    })

文件保存在我的服务器上,但是当我尝试打开它时返回以下错误:

有人可以帮我吗?

【问题讨论】:

    标签: node.js zip httprequest node-modules rar


    【解决方案1】:

    你可以使用常规的 npm 包请求(已经使用了 Promise):

    const fs = require('fs');
    const rp = require('request').defaults({jar: true});
    
    rp
    .get(url)
    .on('response', function(response)
    {
        console.log(response.statusCode)
        console.log(response.headers['content-type'])
    })
    .pipe(fs.createWriteStream('file.zip'));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多