您的位置:首页 > 编程语言 > PHP开发

canvas获取base64图片并上传php服务器

2017-06-05 17:19 531 查看

思路

将图片渲染到canvas

使用canvas的toDataUrl()方法获取bse64文件数据

将数据和文件名发送到服务端

服务端收到数据去掉”’,”前面的文件头信息

使用base64_decode()解码

使用file_put_contents()保存文件

前端

var canvas = $("canvas");
var cxt = canvas[0].getContext('2d');
var img = new Image();
img.src = "xxxxxx";
cxt.drawImage(img,0,0,300,300);
//获取base64数据并上传
var base64Img = canvas[0].toDataUrl();
//只能使用post,get会报错,数据太长
$.post('upload.php',{data:base64Img:name:xxx},function(res){
console.log(res);
});


后台

$file = "./upload/{$_POST['name']}.jpg";//文件报错路径
$img = str_replace('data:image/jpeg;base64,', '', $_POST['data']);//将逗号签名的都匹配掉
$img = str_replace(' ', '+', $img);
$res = file_put_contents( $file , base64_decode($img) );//注意base640decode()方法不要怕忘记写了,必须要解码才能保存
if($res){
die(1);
}


如果不能保存文件请先检查该目录是否有写权限,我因为权限搞了一下午

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息