700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Thinkphp5+ phpqrcode 批量生成二维码图片并保存在本地

Thinkphp5+ phpqrcode 批量生成二维码图片并保存在本地

时间:2023-08-14 09:48:24

相关推荐

Thinkphp5+ phpqrcode 批量生成二维码图片并保存在本地

第一步: 首先需要先下载phpqrcode包,解压在项目中,我们只用到 phpqrcode.php 文件就可以;

phpqrcode下载链接为:/

第二步: 我放在了vendor文件夹中,位置大家随意,只要能成功引入即可;

第三步: 写方法,这里主要介绍一下 ajax_add 方法传入需要生成的数量-->num ; 因为我的项目需求二维码需要跟用户绑定,所以status为绑定状态,如果大家不需要的话可以将没有用的字段删除!

$image_path: 这里是图片生成后保存在项目中的位置(因为后续需要用到这里,所以我将图片保存位置拆分了);这里要特别强调一下: 设置路径的时候千万不要设置为 /uploads/.. 这样的,要把uploads前面的/去掉,因为ROOT_PATH 后面跟了\ 如果我们手动再写入/就会冲突,二维码无法生成

$file_path: 这里需要加入 ROOT_PATH拼接上面已经设置好的图片在项目中保存的位置,生成完整的在服务器中保存的路径

思路: for循环传入的需要生成的数量,首先创建数据,然后再调用生成二维码图片的方法根据返回的数据id将二维码图片的路径更新到数据库中

$url: 这里是生成二维码的链接以及参数; 链接必须要加 http:// 或者 https://

$filename: 这里是生成二维码的图片名称以及图片路径,可以设置为false,如果设置为false就不会生成图片了,因为项目需要,所以这里我设置了图片名称

public function ajax_add(){

$num=$this->request->post('num');

$data['create_time'] = date('Y-m-d',time());

$data['status'] = 2;

$image_path = 'uploads/qrcode/';

$file_path = ROOT_PATH . $image_path;

for ($i=1; $i<=$num; $i++)

{

$id = Db::name('qrcode')->insertGetId($data);

$url = "/index/index?id=$id";

$filename = $image_path . $id . '.png';

$this->qrcode($url,$filename,3,6);

$image['qrcode'] = $image_path.$id.'.png';

Db::name('qrcode')->where(['id' => $id])->update($image);

}

return json(['code' => 1, 'msg' => '生成成功,请稍后']);

}

这里的方法为调用phpqrcode.php,传入参数,生成图片;

$level: 容错级别,一般情况下按照我的参数生成的二维码扫描没有问题;

$size: 二维码大小

function qrcode($url,$filename,$level,$size)

{

Vendor('PHPQrcode.phpqrcode');

//容错级别

$errorCorrectionLevel = intval($level);

//生成图片大小

$matrixPointSize = intval($size);

//生成二维码图片

$Qrcode = new \QRcode();

//第二个参数false的意思是不生成图片文件,如果你写上‘picture.png’则会在根目录下生成一个png格式的图片文件

$Qrcode->png($url, $filename, $errorCorrectionLevel, $matrixPointSize, 2);

}

现在,你试试是不是就生成成功啦?

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。