128 lines
3.8 KiB
PHP
128 lines
3.8 KiB
PHP
|
<?php
|
||
|
// +----------------------------------------------------------------------
|
||
|
// | Bwsaas
|
||
|
// +----------------------------------------------------------------------
|
||
|
// | Copyright (c) 2015~2020 http://www.buwangyun.com All rights reserved.
|
||
|
// +----------------------------------------------------------------------
|
||
|
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
|
||
|
// +----------------------------------------------------------------------
|
||
|
// | Gitee ( https://gitee.com/buwangyun/bwsaas )
|
||
|
// +----------------------------------------------------------------------
|
||
|
// | Author: buwangyun <hnlg666@163.com>
|
||
|
// +----------------------------------------------------------------------
|
||
|
// | Date: 2020-9-28 10:55:00
|
||
|
// +----------------------------------------------------------------------
|
||
|
|
||
|
namespace bw\poster\template;
|
||
|
|
||
|
use bw\Common;
|
||
|
|
||
|
/** 捐款证书绘制工具基类
|
||
|
* Class Common
|
||
|
* @package app\bwmall\model
|
||
|
*/
|
||
|
abstract class Base
|
||
|
{
|
||
|
|
||
|
protected $binaryData = null;
|
||
|
|
||
|
protected $temp_url = 'uploads/qrcode';//临时,目录
|
||
|
|
||
|
protected $path = '';
|
||
|
|
||
|
protected $fileName = '';
|
||
|
|
||
|
protected $data = [];//替换数据
|
||
|
|
||
|
|
||
|
//抽象方法
|
||
|
abstract public function draw($data = []);
|
||
|
|
||
|
/**绘制图片方法
|
||
|
* @param array $config
|
||
|
* @param string $path
|
||
|
* @param string $fileName
|
||
|
* @return array
|
||
|
* @throws \app\common\exception\UploadException
|
||
|
*/
|
||
|
public function out()
|
||
|
{
|
||
|
if(!$this->binaryData)$this->draw();
|
||
|
if(!$this->binaryData)throw new \Exception('没有二进制流文件');
|
||
|
ob_start();
|
||
|
imagejpeg($this->binaryData);
|
||
|
imagedestroy($this->binaryData);
|
||
|
$res = ob_get_contents();//文件二进制流
|
||
|
ob_end_clean();
|
||
|
$outfile = $this->temp_url . '/'; //本地缓存地址
|
||
|
if (!file_exists('./' . $outfile . $this->path)) mkdir('./' . $outfile . $this->path, 0777, true);
|
||
|
$filepath = './' . $outfile . $this->path . '/' . $this->fileName;
|
||
|
|
||
|
file_put_contents($filepath, $res);
|
||
|
//保存到fastadmin框架
|
||
|
$attachment = Common::setFastAdminFile($filepath, $this->fileName);
|
||
|
// TODO: 生成后删除源文件
|
||
|
@unlink($filepath);
|
||
|
return ['url' => $attachment->url, 'fullurl' => cdnurl($attachment->url, true)];
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* 设置模板保存路径
|
||
|
*/
|
||
|
public function path($path){
|
||
|
$this->path = $path;
|
||
|
return $this;
|
||
|
}
|
||
|
|
||
|
public function fileName($fileName){
|
||
|
$this->fileName = $fileName;
|
||
|
return $this;
|
||
|
}
|
||
|
|
||
|
public function imageStream($imageStream){
|
||
|
$this->binaryData = $imageStream;
|
||
|
return $this;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param $data
|
||
|
* @param null $value
|
||
|
* @return $this
|
||
|
*/
|
||
|
public function setData($data,$value=null){
|
||
|
if(is_array($data)) $this->data = array_merge($this->data,$data);
|
||
|
if(is_string($data))$this->data[$data] = $value;
|
||
|
return $this;
|
||
|
}
|
||
|
|
||
|
|
||
|
/**绘制图片方法DEMO
|
||
|
* @param array $config
|
||
|
* @param string $path
|
||
|
* @param string $fileName
|
||
|
* @return array
|
||
|
* @throws \app\common\exception\UploadException
|
||
|
*/
|
||
|
// public function draw($data = [])
|
||
|
// {
|
||
|
// if($data)$this->setData($data);
|
||
|
//
|
||
|
// //得到动态数据
|
||
|
// $background_image_url = config("site.fundraising_cert_tpl"); //背景图片
|
||
|
// if(!$background_image_url)throw new \Exception("缺少证书模板");
|
||
|
// $name = $this->data['name'];//人名
|
||
|
// $org_name = $this->data['org_name'];//组织名
|
||
|
// $createtime = $this->data['createtime'];//捐款时间
|
||
|
// $desc = $this->data['desc'];//描述
|
||
|
// $code = $this->data['code'];//捐款代码
|
||
|
// // 调用绘制方法
|
||
|
// //$background_base = xxxx
|
||
|
// //返回自身
|
||
|
// return $this->imageStream($background_base);
|
||
|
// }
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
}
|