下载的 tar 文件未在节点 js 中打开。?

我正在尝试使用 node js 下载 tar 文件,文件正在保存但无法打开该文件我尝试了以下代码


var fs = require("fs");

var fn = "version1.tgz";

var request = require('request');

var downloadUrl = "https://url/api/download?downloadFile="+fn+"&username=mkhun";

request({

    url: downloadUrl,

    method: 'POST',

}, function (err, resp, body) {

    var rmv = body;

    console.log(rmv);

    fs.writeFile(fn,rmv,function(err,data){

            console.log(err);

    });

});

但同样的事情正在使用 javascript ajax


var fn = "version1.tgz";

var xhttp = new XMLHttpRequest();

var downloadUrl = "https://url/api/download?downloadFile="+fn+"&username=mkhun";

console.log(downloadUrl);

xhttp.onreadystatechange = function() {

if (this.readyState == 4 && this.status == 200) {

    var blob = this.response;

     var fileName = fn;

     var link=document.createElement('a');

     link.href=window.URL.createObjectURL(blob);

     link.download=fileName;

     link.click();


} else if(this.readyState == 2) {

        xhttp.responseType = "blob";

    }

};

xhttp.open("POST", downloadUrl , true);

xhttp.send();

我不知道如何解决 node-red 中的问题


MMMHUHU
浏览 137回答 1
1回答

慕沐林林

这是接收请求数据时的编码问题。您可以使用streams来pipe从一个缓冲区请求到文件系统直接。否则,您可以encoding: null在request选项中使用request({    url: downloadUrl,    method: 'POST',    encoding: null}, ...)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript