публиковать / анализировать данные изображения холста из nodejs - PullRequest
0 голосов
/ 02 января 2019

Я пытался отправить изображение, отображаемое на холсте html, на http-сервер nodejs, однако у меня возникла проблема с анализом отправленной формы в конце получения:

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, который недоступен непосредственно в nodejs.

Текущая ошибкаТеперь я получил ответ сервера «запись после завершения», который произошел только после обмена стандартным изображением через локальный путь к изображению с данными uri из элемента canvas.

Есть ли простойспособ опубликовать мой data-uri и разобрать его обратно в пригодный для использования объект js на сервере http nodejs?

...