現(xiàn)在需要這樣一個功能: 通過 GET 參數(shù) "url" , 讀取圖片并顯示圖片我現(xiàn)在的代碼是: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條經(jīng)驗 獲得超1個贊
如下所示
//不能為 res.end(); 輸出二進制數(shù)據(jù)
更改后的代碼為:
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條經(jīng)驗 獲得超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 關(guān)注
- 446 瀏覽
添加回答
舉報
0/150
提交
取消