post/parse canvas image data from nodejs












1















I have been trying to submit an image being rendered on a html canvas to a nodejs http server however im having an issue parsing the submitted form on the recieving end:



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();
});
}


After reading a number of articles it seems many have attempted the same thing however in pure javascript not in nodejs : http://www.nixtu.info/2013/06/how-to-upload-canvas-data-to-server.html



however the example here makes use of BLOB which is unavailable directly in nodejs.



The current error i recieved now is a "write after end" server response, which has only occured after swapping out submission of a standard image via a local image path with the uri-data from the canvas element.



Is there a simple way to post my data-uri and parse it back into a usable js object on the http nodejs server?










share|improve this question





























    1















    I have been trying to submit an image being rendered on a html canvas to a nodejs http server however im having an issue parsing the submitted form on the recieving end:



    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();
    });
    }


    After reading a number of articles it seems many have attempted the same thing however in pure javascript not in nodejs : http://www.nixtu.info/2013/06/how-to-upload-canvas-data-to-server.html



    however the example here makes use of BLOB which is unavailable directly in nodejs.



    The current error i recieved now is a "write after end" server response, which has only occured after swapping out submission of a standard image via a local image path with the uri-data from the canvas element.



    Is there a simple way to post my data-uri and parse it back into a usable js object on the http nodejs server?










    share|improve this question



























      1












      1








      1








      I have been trying to submit an image being rendered on a html canvas to a nodejs http server however im having an issue parsing the submitted form on the recieving end:



      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();
      });
      }


      After reading a number of articles it seems many have attempted the same thing however in pure javascript not in nodejs : http://www.nixtu.info/2013/06/how-to-upload-canvas-data-to-server.html



      however the example here makes use of BLOB which is unavailable directly in nodejs.



      The current error i recieved now is a "write after end" server response, which has only occured after swapping out submission of a standard image via a local image path with the uri-data from the canvas element.



      Is there a simple way to post my data-uri and parse it back into a usable js object on the http nodejs server?










      share|improve this question
















      I have been trying to submit an image being rendered on a html canvas to a nodejs http server however im having an issue parsing the submitted form on the recieving end:



      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();
      });
      }


      After reading a number of articles it seems many have attempted the same thing however in pure javascript not in nodejs : http://www.nixtu.info/2013/06/how-to-upload-canvas-data-to-server.html



      however the example here makes use of BLOB which is unavailable directly in nodejs.



      The current error i recieved now is a "write after end" server response, which has only occured after swapping out submission of a standard image via a local image path with the uri-data from the canvas element.



      Is there a simple way to post my data-uri and parse it back into a usable js object on the http nodejs server?







      javascript node.js post http-post






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Jan 3 at 7:28







      D3181

















      asked Jan 2 at 20:12









      D3181D3181

      1,29641030




      1,29641030
























          0






          active

          oldest

          votes












          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54012566%2fpost-parse-canvas-image-data-from-nodejs%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes
















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54012566%2fpost-parse-canvas-image-data-from-nodejs%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          MongoDB - Not Authorized To Execute Command

          How to fix TextFormField cause rebuild widget in Flutter

          in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith