我基本上使用了fs.writeFile,fs.write,fs.createWriteStream,但我似乎无法正确使用。
我正在使用一个名为AdmZip的节点模块,它接受一个文件缓冲区,然后可以保存为zip存档。所以,我想,这可能是一种方法,但如何在我接收的字符串中创建一个缓冲区?
btw:由于node.js中的错误,我无法使用http模块从互联网上接收文件,因此即时使用xhr请求。
答案 0 :(得分:1)
所以,我找到了一个解决方案,首先设置xhr.responseType = 'arraybuffer'
,然后将响应转换为Uint8Array。从那里我将Uint8Array转换为nodejs缓冲区,然后我可以保存它。
var arrayBuffer = xhr.response,
byteArray = new Uint8Array(arrayBuffer);
var buffer = new Buffer(byteArray.length);
for (var i = 0; i < byteArray.length; i++) {
buffer.writeUInt8(byteArray[i], i);
}
fs.writeFileSync(fname, buffer);