CNode

request 请求zip链接后保存为.zip,解压不了

问答
Zzhoushx3发布于10 年前最后回复10 年前5 回复4118 浏览0 收藏

var rp = require('request-promise') var fs = require('fs')

rp('http://.....a.zip').then( body => { fs.writeFile('a.zip', body, null, err => { if (err) { console.error(err) } }) }) 如上,request了一个zip链接后把body写入到a.zip文件后,a.zip无法解压。直接下载该链接是可以解压的。 这里是什么问题,encoding?

查看回复

回复 (5)

S
stonephp#1·10 年前
request('http://google.com/doodle.png').pipe(fs.createWriteStream('doodle.png'))

这个直接就是 request 文档中的例子,看这个你应该就明白了。

Z
zhoushx3#2·10 年前
引用 stonephp这个直接就是 request 文档中的例子,看这个你应该就明白了。

@stonephp 多谢指引,这里在request的时候应该加上 encoding: null. 如request文档说的:

Note: if you expect binary data, you should set encoding: null

所以我这里改成如下就ok了: rp({ url: ‘http://…a.zip’, encoding: null })

S
stonephp#3·10 年前
S
stonephp#4·10 年前

用流的方式,你这么弄不行的

Z
zhoushx3#5·10 年前
引用 stonephp用流的方式,你这么弄不行的

@stonephp 请教下,那该怎么处理,不用流的方式

参与回复
登录后即可参与回复。登录