提交画布图像作为附件(不提交ajax)

I want to retrieve the attached file by using $_FILES['name']. But, if I use ajax, it always send data in POST variable with base64 encoding.

is there any way to do that?

Thanks in advance.

AJAX is the direct method to save your canvas as an image on the server:

  • Ajax post (submit the canvas as base64 data)
  • base64_decode (decode the base64 data)
  • file_put_contents (save the decoded data as an image file on the server)

An alternate Indirect method:

  • Open a new browser tab with an image created from the canvas using toDataURL
  • Have the user right-click-save-as the image to their desktop
  • Use a form and input-type=file to upload the desktop image to the server.

In the indirect method, you might be able to use a 3rd party script to save your canvas to the user's desktop (CORS security restrictions apply). One example of this kind of script is FileSaverJs: https://github.com/eligrey/FileSaver.js/