这篇博客文章恰当地描述了使用AJAX查询将画布保存到服务器上的方法,我想这应该适合您。
基本上,您需要使用
var canvasData =testCanvas.toDataURL("image/png");Javascript来检索画布的内容。这将是base64编码的字符串,如下所示:
data:image/png;base64,fooooooooooobaaaaaaaaaaar==。
以下代码将确保AJAX查询将内容发送到HTML:
var ajax = new XMLHttpRequest();ajax.open("POST",'testSave.php',false);ajax.setRequestHeader('Content-Type', 'application/upload');ajax.send(canvasData);
在服务器上的PHP脚本中,您将
HTTP_RAW_POST_DATA在
$GLOBALS数组中拥有一个名为key的键,其中将包含我们刚刚获取的数据。
// Remove the headers (data:,) part.$filteredData=substr($GLOBALS['HTTP_RAW_POST_DATA'], strpos($GLOBALS['HTTP_RAW_POST_DATA'], ",")+1);// Need to depre before saving since the data we received is already base64 enpred$depredData=base64_depre($filteredData);$fp = fopen( 'test.png', 'wb' );fwrite( $fp, $depredData);fclose( $fp );
当然,
test.png就是您要保存的文件名。需要第一行来删除
data:image/png;base64,编码图像的一部分,以便以后可以使用对其进行解码
base64_depre()。它的输出(
$depredData)将保存到文件中。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)