Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript nodejs是否将原始图像数据写入jpeg文件?_Javascript_Node.js_Buffer_Fs - Fatal编程技术网

Javascript nodejs是否将原始图像数据写入jpeg文件?

Javascript nodejs是否将原始图像数据写入jpeg文件?,javascript,node.js,buffer,fs,Javascript,Node.js,Buffer,Fs,我正在从get请求获取数据。数据(在响应主体中)如下所示: ... ÿÀ���"�ÿÄ��������������ÿÄ�N��!1"AQa2q¡#BR±ð3brS²ÁÂÑá$ñCDTst¢³&45dÃÒÿÄ������������ÿÄ�-������!1A"Qa¡ðq±ÁÑ2áÿÚ���?�û." """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """R

我正在从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ý:\ .....
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
我想获取作为图像数据的正文内容,并将其保存到服务器上的
name.jpeg
文件中

我该怎么做?我尝试将缓冲区与
fs
模块结合使用,但我有点迷路了


谢谢

这里有一个例子,下载到
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();
    });
});

略短的版本,使用:


不要介意。它起作用了。谢谢。那么我可以同时打开多个流吗?我想同时将多个映像写入磁盘,但当我尝试将其放入循环时,它有点疯狂并崩溃。因此,如果我在图像工作时进行图像处理。我可以同时运行多个流吗?这不能回答问题。如果您已经有响应正文/文本,如何直接保存响应数据而不创建其他请求?@stewe
res.on('end')
有时会在
f.write
完成之前触发,因此在图像完全写入之前提前结束writeStream对我来说,这是一个比接受的更好的答案
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'));
});