Express JS在服务器上保存图像

时间:2015-01-14 16:12:12

标签: node.js express image-uploading

我将图像从我的iPhone App发送到服务器。 Restful API在快递JS中。 我正在使用POST请求在服务器上获取图像。我能够打印二进制数据但无法正确存储它。当我从指定位置打开图像时,它已损坏。这是我的快递js代码。

app.post('/api/pictures',function(req,res){
console.log(req.headers);
    var body = '';
    filePath = 'C:/Users/Desktop/restful/image.png';
    req.on('data', function(data) {
    console.log(data);
    body += data;
});

 req.on('end', function (){ 
     fs.appendFile(filePath, body, function() { 
     res.end(); 
     });
   });
  res.send("Success!");
});

我的req.headers是

enter image description here

我做错了吗?

我在客户端收到此回复的地方

{ status code: 200, headers {
Connection = "keep-alive";
"Content-Length" = 8;
"Content-Type" = "text/html; charset=utf-8";
Date = "Wed, 14 Jan 2015 16:15:01 GMT";
"X-Powered-By" = Express;
 } }
upload completed, response: Optional(Success!)

提前致谢。

2 个答案:

答案 0 :(得分:0)

您需要使用多部分解析中间件,例如multermultipartyformidableconnect-busboy

答案 1 :(得分:0)

最后,我可以使用connect-multiparty上传图片。

app.post('/api/uploadimage', multipartMiddleware, function(req, res) {
 console.log(req.body, req.files); // check console 

fs.readFile(req.files.urForm-data_name.path, function (err, data) {
       fs.writeFile(newPath, data, function (err) {
      });
    });
 });