I have a canvas and I want to upload the canvas context to the server using ajax and php. I want the final output to be an image stored on the server. I have done image uploading using form. But now I want to get the canvas context convert it to image and upload to the server!
So, how can i do that? Any suggestions, algos or solutions are appreciated!
This blog post aptly describes the method of saving canvases onto the server with AJAX queries, I guess this should be fitting for you.
Basically, you will need a
var canvasData = testCanvas.toDataURL("image/png");
to retrieve the canvas' contents in JavaScript. This will be a Base64 encoded string, something like this:data:image/png;base64,fooooooooooobaaaaaaaaaaar==
.The following code will make sure the AJAX query sends the contents to the HTML:
On the server, in the PHP script, you will have a key named
HTTP_RAW_POST_DATA
in the$GLOBALS
array, this will contain the data we just fetched.Of course,
test.png
is the filename you will save. The first line is required to remove thedata:image/png;base64,
part of the encoded image, so that it can later be decoded bybase64_decode()
. It's output ($decodedData
) will be saved to the file.