我正在尝试使用 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 ajaxvar 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 中的问题
1 回答

慕沐林林
TA贡献2016条经验 获得超9个赞
这是接收请求数据时的编码问题。
您可以使用streams来pipe从一个缓冲区请求到文件系统直接。否则,您可以encoding: null在request选项中使用
request({
url: downloadUrl,
method: 'POST',
encoding: null
}, ...)
添加回答
举报
0/150
提交
取消