原生php 代码
$imageName = "25220_".date("His",time())."_".rand(1111,9999).'.png'; //图片名称
$image = $_POST['uploads']; //APP传过来的 base 64 字符串
$path = __DIR__.'/sign/'.date("Ymd"); //获取文件目录
if (!is_dir($path)){ //判断目录是否存在 不存在就创建
mkdir($path,0777,true);
}
$imageSrc= $path."/". $imageName; //图片名字
$r = file_put_contents($imageSrc, base64_decode($image)); //返回的是字节数
if (!$r)
{
$data['error'] = '签名上传失败';
$data['success'] = 0;
}
else
{
$data['data'] = '签名上传成功';
$data['success'] = 1;
}
TP 3.23 方法 (和原生的代码区别不大)
/**
* @param Base64图片上传方法
*
* @return 成功返回图片链接 失败返回false
*/
public function Base64StrShangChuan($image){
$imageName = "/25220_".date("His",time())."_".rand(1111,9999).'.png'; //图片名称
define('BASE_PATH',str_replace('\\','/',realpath(dirname(__FILE__).'/../../../'))."/");
$path = BASE_PATH.'/Public/images/'.date("Ymd"); //获取文件目录
$return_url = 'images/'.date("Ymd").$imageName;
if (!is_dir($path)){ //判断目录是否存在 不存在就创建
mkdir($path,0777,true);
}
$imageurl = $path.$imageName;
$image = explode(',',$image); //截取data:image/png;base64, 这个逗号后的字符如果前台传的base64字符串已经截取过,把这一行代码注释调掉就OK
$is_success = file_put_contents($imageurl, base64_decode($image)); //返回的是字节数
if($is_success > 0)
{
return $return_url;
}
else
{
return false;
}
}