从nodejs发布/解析画布图像数据

时间:2019-01-02 20:12:58

标签: javascript node.js post http-post

我一直试图将在html画布上渲染的图像提交到nodejs http服务器,但是在接收端解析提交的表单时遇到问题:

ipcMain.on('resizeOK', (event, arg) => {
  if(currentImage){
  var formData = {
    my_field: 'my_value',
   // my_file: fs.createReadStream(imagepath), - old way using a local path
    my_file: currentImage, //new way using the data from an image canvas
    my_width : arg.widthData,
    my_height : arg.heightData,
    my_quality : arg.quality
  };

  request.post({url:'http://localhost:8080/resize', formData: formData}, function optionalCallback(err, httpResponse, body) {
  if (err) {
    return console.error('upload failed:', err);
  }
  console.log('Upload successful!  Server responded with:', body);
});
}
});


// how the image is retrieved from the current canvas
var currentImage = canvas.toDataURL("image/png");


//HTTP server being posted to
if (req.url == '/resize') {
    var form = new formidable.IncomingForm();
    form.parse(req, function (err, fields, files) {
      var output = util.inspect({fields: fields, files: files});
      var newWidth = fields['my_width'];
      var newHeight = fields['my_height'];
      var quality = fields['my_quality'];
      res.write('File uploaded to '+output + "");
      res.end();
    });
  }

在阅读了许多文章之后,似乎很多人都试图在纯JavaScript中尝试同一件事,而不是在nodejs中:http://www.nixtu.info/2013/06/how-to-upload-canvas-data-to-server.html

但是这里的示例使用BLOB,而BLOB在Node.js中是直接不可用的。

我现在收到的当前错误是“端后写入”服务器响应,仅在将通过本地图像路径提交的标准图像提交与canvas元素中的uri数据交换之后才发生。

是否有一种简单的方法可以将我的data-uri发布并解析回http nodejs服务器上的可用js对象中?

0 个答案:

没有答案