从http请求返回的原始数据中保存.zip或.rar文件

时间:2018-11-03 21:23:40

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

我正在尝试使用请求允许包从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!");
                }
            });
    })

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

error

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

您可以使用常规的npm软件包请求(已经使用了promises):

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