The file I post below is being ajaxed from jQuery.
It returns encoded data (with question mark symbols and all). I am not even echoing the data or anything.
The only thing I send to the client is json_encode. The json_encode data comes after the encoded data.
When I do not call my base64_extension function, it all works properly.
EDIT
The code is no longer spitting out the encoded data. However, the function is returning 4 (not image). I am trying to understand why.
function base64_extension($base64)
{
$base64 = str_replace("data:image/png;base64,", "", $base64);
$base64 = imagecreatefromstring(base64_decode($base64));
if (!$base64) {
return 0; /* Not image */
}
if (imagepng($base64, "tmp.png")) {
imagedestroy($base64);
unlink('tmp.png');
return 1;
} else if (imagejpeg($base64, "tmp.jpg")) {
imagedestroy($base64);
unlink('tmp.jpg');
return 2;
} else if (imagegif($base64, "tmp.gif")) {
imagedestroy($base64);
unlink('tmp.gif');
return 3;
} else {
return 4; /* Not image */
}
}
That is the function, here is the rest :
echo json_encode(array("status" => "success", "dreamID" => $data['dreamId'], "mime" => base64_extension($_POST['dream_pic'])));
mime returns as 1. So the function seems to work. Not sure why a bunch of encoded data gets returned to ajax. Thanks!