I am getting data from a get request. The data (in the body of the response) looks something like this:
我从get请求中获取数据。数据(在响应正文中)看起来像这样:
... ÿÀ���"�ÿÄ��������������ÿÄ�N��!1"AQa2q¡#BR±ð3brS²ÁÂÑá$ñCDTst¢³&45dÃÒÿÄ������������ÿÄ�-������!1A"Qa¡ðq±ÁÑ2áÿÚ���?�û." """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """R1º#ª¥7Jíî½M6îNö ]·!]=Fvß`7~qÆee²%·JokkZüCbìþ<ù{ã9öùË®´(%A,Ià�2I?t×bn6wÆù¥V 2SÀ><k5ºÙØ92EhÎçü¨/aÝ!ã|ñþ¥ñßT}U«¦ÒÚµ«xuÕfƳ KØ {ù{ð$·DúBMZÆcp}´R|Mä2ó8üg)·ùôfõ$zXiRÞü}óÆ>,êÚûíR5ý:\ .....
the response headers look like this:
响应标头如下所示:
HTTP/1.1 200 OK
Content-Length: 26965
Access-Control-Allow-Origin: *
Content-Type: image/jpeg; charset=UTF-8
Date: Mon, 06 Feb 2012 21:14:21 GMT
Expires: Mon, 06 Feb 2012 22:14:21 GMT
Cache-Control: public, max-age=3600
Last-Modified: Fri, 13 Feb 2009 23:31:30 GMT
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Server: Dropta Server 1.0
X-Frame-Options: SAMEORIGIN
Connection: close
I want to get the body content which is my image data and save it to a name.jpeg
file on the server.
我想获取作为我的图像数据的正文内容并将其保存到服务器上的name.jpeg文件中。
How can I do that? I tried using buffers combined with the fs
module, but I am kind of lost.
我怎样才能做到这一点?我尝试使用缓冲区结合fs模块,但我有点迷茫。
Thanks
2 个解决方案
#1
13
Here's an example, which downloads http://upload.wikimedia.org/wikipedia/commons/1/15/Jagdschloss_Granitz_4.jpg to name.jpeg
这是一个例子,它将http://upload.wikimedia.org/wikipedia/commons/1/15/Jagdschloss_Granitz_4.jpg下载到name.jpeg
var fs=require('fs');
var http=require('http');
var f=fs.createWriteStream('name.jpeg');
var options={
host:'upload.wikimedia.org',
port:80,
path:'/wikipedia/commons/1/15/Jagdschloss_Granitz_4.jpg'
}
http.get(options,function(res){
res.on('data', function (chunk) {
f.write(chunk);
});
res.on('end',function(){
f.end();
});
});
#2
7
A slightly shorter version, which uses Stream.pipe:
一个稍短的版本,它使用Stream.pipe:
var http = require('http'),
fs = require('fs'),
imgSource = 'http://upload.wikimedia.org/wikipedia/commons/1/15/Jagdschloss_Granitz_4.jpg';
http.get(imgSource, function(res) {
res.pipe(fs.createWriteStream('wiki.jpg'));
});
#1
13
Here's an example, which downloads http://upload.wikimedia.org/wikipedia/commons/1/15/Jagdschloss_Granitz_4.jpg to name.jpeg
这是一个例子,它将http://upload.wikimedia.org/wikipedia/commons/1/15/Jagdschloss_Granitz_4.jpg下载到name.jpeg
var fs=require('fs');
var http=require('http');
var f=fs.createWriteStream('name.jpeg');
var options={
host:'upload.wikimedia.org',
port:80,
path:'/wikipedia/commons/1/15/Jagdschloss_Granitz_4.jpg'
}
http.get(options,function(res){
res.on('data', function (chunk) {
f.write(chunk);
});
res.on('end',function(){
f.end();
});
});
#2
7
A slightly shorter version, which uses Stream.pipe:
一个稍短的版本,它使用Stream.pipe:
var http = require('http'),
fs = require('fs'),
imgSource = 'http://upload.wikimedia.org/wikipedia/commons/1/15/Jagdschloss_Granitz_4.jpg';
http.get(imgSource, function(res) {
res.pipe(fs.createWriteStream('wiki.jpg'));
});