前言
相信有很多人有把网络图片保存到服务器的需求,那么如何把网络图片保存到服务器上呢?简单介绍一下我下面代码的原理,首先网络图片转化成base64格式,然后再把base64保存为jpg或者png等格式的图片即可,直接看代码吧
首先
把网络图片转为base64格式
//网络图片转base64
function img_base64($qrcodeurl)
{
$imageInfo = getimagesize($qrcodeurl);
$base64 = "" . chunk_split(base64_encode(file_get_contents($qrcodeurl)));
return 'data:' . $imageInfo['mime'] . ';base64,' . chunk_split(base64_encode(file_get_contents($qrcodeurl)));
}
保存为图片
$image = img_base64($imgurl);
$image = explode(',', $image);
$image = $image[1];
$imageName = "lmwa_cn" . date("His", time()) . "_" . rand(1111, 9999) . '.png';
$path = "public/uploads/" . date("Ymd", time());
$imageSrc = $path . "/" . $imageName; //图片名字
$r = file_put_contents($imageSrc, base64_decode($image)); //返回的是字节数
if (!$r) {
// 图片保存失败
echo '图片保存失败';
}else{
$fileurl = 'http://' . $_SERVER['HTTP_HOST'] . '/' . $imageSrc;
}
2 条评论
直接存二进制流
感谢大佬指点