我想做一份头像上传功能,前端用户裁剪好头像以后会返回base64格式的,但是我不想把base64格式的存入数据库,想把它转成png图片,但是程序写好了,就是出了问题,我把base64传回给后端PHP用的是jQuery的ajax,用post方式传递,类型为json,这个前端的base64保证没问题,我直接赋值给php文件中的变量可以转成图片,但是经过ajax传值后返回的数值转成图片就成了这个样子
我把ajax传值返回的base64亲手又赋值给php变量,结果也是那样,总得来说,就是ajax传值以前的数据能正常转成图片,传值以后的就无了,下面是我的代码。
前端js:
```javascript
urlname = res.url //这个urlname就是前端的base64编码的图片
$.ajax({
type:'post',
url:'php/face.php',
dataType:'json',
data:'url=' + urlname,
success:function(res){
console.log(res.result)
}
})
后端PHP:
```php
<?php
$imgbase64 = $_POST['url']; //url就是前端图片的base64字符串
$info = explode(',',$imgbase64);
if($info[0] == 'data:image/png;base64'){
upa($info[1]);
}else{
echo 'no';
}
function upa($str){
$pic = base64_decode($str);
if($pic === false) exit('失败');
$path = './'; //保存位置
$picname = '1.png'; //文件名及文件尾缀
if(file_put_contents($path.$picname,$pic)){
exit('success');
}else{
exit('fail');
}
}
$img['result'] = $imgbase64;
echo json_encode($img);
?>
求解决(╥╯^╰╥)