详解node.js 下载图片的 2 种方式
具体代码如下所示:
varrequest=require("request");
varfs=require("fs");
functiondownload1(url,filename,fn){
request(url).pipe(fs.createWriteStream(filename).on("close",function(err,res){
if(err){
console.log(err);
}else{
fn&&fn();
}
}))
}
functiondownload2(url,filename,fn){
request.get({uri:url,encoding:'binary'},function(err,res){
if(!err){
fs.writeFile(filename,res.body,"binary",function(err,res){
if(!err){
fn&&fn();
}else{
console.log(err);
}
})
}
})
}
ps:下面看下nodejs下载远程图片的实现代码,具体代码如下所示:
varexpress=require('express');
varrequest=require('request');
varhttp=require('http');
varurl=require('url');
varfs=require("fs");
varrouter=express.Router();
/*GEThomepage.*/
router.get('/',function(req,res,next){
varurl="http://www.valu.cn/images/1.gif";
//request('http://www.valu.cn/images/1.gif').pipe(fs.createWriteStream('./public/upload/downImg/logonew.png'));
varreq=http.get(url,function(res){
varimgData="";
res.setEncoding("binary");//一定要设置response的编码为binary否则会下载下来的图片打不开
res.on("data",function(chunk){
imgData+=chunk;
});
res.on("end",function(){
fs.writeFile("./public/upload/downImg/logonew.png",imgData,"binary",function(err){
if(err){
console.log("保存失败");
}
console.log("保存成功");
});
});
res.on("error",function(err){
console.log("请求失败");
});
});
req.on('error',function(err){
console.log("请求失败2"+err.message);
});
res.render('index',{title:'首页2'});
});
module.exports=router;
总结
以上所述是小编给大家介绍的node.js下载图片的2种方式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!