现在需要这样一个功能: 通过 GET 参数 "url" , 读取图片并显示图片我现在的代码是:var http = require('http');var url = require('url');
http.createServer(function (req, res) { var params = url.parse( req.url , true ); var IMGS = new imageServer( http , url);
IMGS.http( params.query.url , function( data ){
res.writeHead(200, {"Content-Type": data.type});
var img = new Buffer(data.base64, 'base64').toString('binary'); console.log(data.base64);
res.end( img );
});
}).listen(8124);var imageServer = function( http , url ){ var _url = url; var _http = http; this.http = function(url , callback , method){
method = method || 'GET';
callback = callback || function(){}; var urlData = _url.parse(url); var request = _http.createClient(80 , urlData.host).
request(method, urlData.pathname, {"host": urlData.host});
request.end();
request.on('response', function (response) { var type = response.headers["content-type"],
body = "";
response.setEncoding('binary');
response.on('end', function () { var base64 = new Buffer(body, 'binary').toString('base64'); var data = { type : type , base64 : base64
};
callback(data);
});
response.on('data', function (chunk) { if (response.statusCode == 200) body += chunk;
});
});
};
};
2 回答
冉冉说
TA贡献1877条经验 获得超1个赞
如下所示
//不能为 res.end(); 输出二进制数据
更改后的代码为:
var http = require('http');var url = require('url'); http.createServer(function(req, res) { var params = url.parse(req.url, true); var IMGS = new imageServer(http, url); IMGS.http(params.query.url, function(data) { res.writeHead(200, {"Content-Type": data.type}); res.write(data.body, "binary"); res.end(); }); }).listen(8124);var imageServer = function(http, url) { var _url = url; var _http = http; this.http = function(url, callback, method) { method = method || 'GET'; callback = callback || function() {}; var urlData = _url.parse(url); var request = _http.createClient(80, urlData.host). request(method, urlData.pathname, { "host": urlData.host }); request.end(); request.on('response', function(response) { var type = response.headers["content-type"], body = ""; response.setEncoding('binary'); response.on('end', function() { var data = { type: type, body: body }; callback(data); }); response.on('data', function(chunk) { if (response.statusCode == 200) body += chunk; }); }); }; };
德玛西亚99
TA贡献1770条经验 获得超3个赞
npm install request
var request = require('request');var fs = require('fs');
request('http://abc.com/abc.png').pipe(fs.createWriteStream('abc.png'));
abc.png 这样就被下载到你本地了。
- 2 回答
- 0 关注
- 352 浏览
添加回答
举报
0/150
提交
取消