昨天“写”了一编关于图片加水印的博文【vue + vant实现图片上传加水印】。那么,从php的后端角度上来说,前端已经实现了加水印,那在php,是怎么接收的。
其实,这跟平时我们写图片上传没什么区别。因为在vant的世界里。他的图片上传是用base64上传的。也就是说,他先把文件域转成base64,然后以base64的字符串进行上传。在 php端,就直接$_POST 接收。
<?php
$imgbase64 = $_POST['imgbase64']; //imgbase64就是前端图片的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 = 'data/thumb/';
$picname = 'thumb.png';
if(file_put_contents($path.$picname,$pic)){
exit('图片上传成功!');
}else{
exit('图片上传失败!');
}
}
?>
由于时间关系,我先写怎么多。