php 保存图片表单,PHP保存表单中base64图片的函数

《PHP保存表单中base64图片的函数》要点:

本文介绍了PHP保存表单中base64图片的函数,希望对您有用。如果有疑问,可以联系我们。

相关主题:PHP开发

这是维易PHP的一个保存客户端发上来的base64代码,把它保存为图片。

发上来的代码如:/9j/4AAQSkZJRgABAQAA .....后面略,全是base64代码

调用示例:#1、使用函数自动生成图片名

base64ToImg($str ,ROOT.'aa/bb');  #会在根目录下aa/bb下保存为类似201704222316021151.jpeg的图片名

#2、使用自定义图片名

base64ToImg($str ,ROOT.'a.jpg');

返回值:

保存失败或base64代码不合格时,返回false

成功则返回含路径的新图片名。

函数代码:其中的mkdirs()是递归创建目录函数,参http://www.vephp.com/jiaocheng/73.html/** base64保存为图片

* 作者:http://www.vephp.com 维易PHP

* @param string $base64Str  图片中src部分的base64代码

* @param string $pathOrName  可以是路径+指定文件名,也可以是路径,此时会生成日期+随机码生成的图片名。

*/

function base64ToImg($base64Str='' ,$pathOrName='')

{

//保存base64字符串为图片  ......

if (preg_match('/^/', $base64Str, $imginfo))

{

$imgContent = str_replace($imginfo[0], '', $base64Str);

//检查内容是否符合base64格式,

if (!preg_match('/^[a-zA-Z0-9\+\/\=]+$/', $imgContent)) return false; //非正常base64

#$imginfo = Array ( [0] =>  [1] => jpeg )

//生成新名字

$newImgName = $pathOrName;

$ext = strtolower(strrchr($pathOrName , '.'));

if( (empty($ext) || !in_array($ext,['.jpg','.jpeg', '.png','.bmp','.gif'])) && !empty($imginfo[1])) {

$ext = $imginfo[1];

$newImgName = date ( 'YmdHis' ) . random ( 2 ) . random ( 2 ) . '.' . $ext;

$newImgName = rtrim ( $pathOrName, '/' ) . '/' . $newImgName;

}

$dir = dirname($newImgName);

if(!is_dir($dir)) mkdirs($dir);  //创建目录

if(@file_put_contents($newImgName, base64_decode($imgContent)) ){

return $newImgName;

}

}

return false;

}

其实base64挺方便的,只是生成的图片体积挺大的,最好使用压缩函数再压一次。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值