3

How can I submit Canvas content inside a PHP CodeIgniter form? One of the inputs on my form is a Canvas for a drawing or webcam photo.

I created a tag <input name="picture" type="hidden"> and set its value to the base64 content:

myPictureInput.value = canvas.toDataURL();

However, when the user submits the form, the POST value read from the <input> is truncated to 64kb.

Is there an optimal way to post or submit images together with form data?

Brett Wolfington
  • 6,587
  • 4
  • 32
  • 51
Daniel Santos
  • 14,328
  • 21
  • 91
  • 174

1 Answers1

3

As mentioned in this answer, you should send the canvas to your server separately, then put your form submit function inside of the done callback.

var dataURL = canvas.toDataURL();
$(function() {
    $(form).submit(function(e) {
          e.preventDefault();
          $.ajax({
              type: "POST",
              url: "script.php",
              data: { 
                 imgBase64: dataURL
              }
         }).done(function(o) {
              console.log('saved image'); 
              $.post(url, form.serialize(), function(data) {
                     console.log('saved form')
              };
    });
Community
  • 1
  • 1
acupofjose
  • 2,159
  • 1
  • 22
  • 40