fastadmin 框架 生成qr code 二维码图片,PHP 7.4版本

ops/2024/12/25 10:36:25/

注意:
1、不同版本,安装qr code 用法不同。PHP8.0以上用qr code 4.0版本, PHP7.4用 qr code3.0版本

2、项目根目录安装:

//安装3.0版本
composer require endroid/qr-code:^3.0
//检查安装版本
composer show endroid/qr-code
选Y  

3、使用方式:

use Endroid\QrCode\QrCode;
use Endroid\QrCode\Writer\PngWriter; // 使用 PngWriter
use Endroid\QrCode\Writer\JpgWriter;
use Endroid\QrCode\Writer\SvgWriter;public function index()
{$qrCode = new QrCode($OrderList['invoice_no']);  // 使用发票号作为二维码内容$qrCode->setSize(300); // 设置二维码的大小$qrCode->setMargin(10); // 设置二维码的边距$writer = new PngWriter(); // 确保初始化了 PngWriter// 定义二维码保存路径$qrCodePath = $_SERVER['DOCUMENT_ROOT'] . '/uploads/qrcodes/' . 'order_' . $OrderList['invoice_no'] . '.png';// 创建目录(如果目录不存在)$dirPath = dirname($qrCodePath); // 获取保存路径的父目录if (!is_dir($dirPath)) {mkdir($dirPath, 0777, true); // 创建目录并设置权限}// 保存二维码图片$writer->writeFile($qrCode, $qrCodePath); // 保存二维码文件// 保存二维码文件到指定路径// 更新订单数据,添加二维码图片路径$orderData['image'] = '/uploads/qrcodes/' . 'order_' . $OrderList['invoice_no'] . '.png';//更新到数据库指定路径,根据自己逻辑而定print_r($orderData);exit;
}

4、如果直接使用,会出现错误,这里修改了一下接口文件代码, 根目录搜索 : AbstractWriter.php 文件

//代码第27行左右public function writeFile(QrCodeInterface $qrCode, string $path): string{// 生成二维码字符串(图像内容)$string = $this->writeString($qrCode);// 将图像内容保存到指定路径file_put_contents($path, $string);// 返回保存二维码图像的路径 ,新增了返回路径,就没报错了return $path;  }

http://www.ppmy.cn/ops/144831.html

相关文章

Postman常用测试脚本

状态码验证 // 验证状态码200 pm.test("Status code is 200", function () {pm.response.to.have.status(200); }); 响应时间验证 // 验证响应时间<500ms pm.test("Response time is within acceptable range", function () {pm.expect(pm.response.…

Docker、containerd、安全沙箱、社区Kata Containers运行对比

大家看了解决有意义、有帮助记得点赞加关注&#xff01;&#xff01;&#xff01; containerd、安全沙箱和Docker三种运行对比。 本文通过对比三种运行时的实现和使用限制、部署结构&#xff0c;帮助您根据需求场景了解并选择合适的容器运行。 一、容器运行时实现和使用限制…

3D几何建模引擎Parasolid功能解析

一、什么是Parasolid&#xff1f; Parasolid是由Siemens PLM Software开发的高精度精密几何建模引擎。它全面评估CAD&#xff08;计算机辅助设计&#xff09;、CAM&#xff08;计算机辅助制造&#xff09;、CAE&#xff08;计算机辅助工程&#xff09;、PLM&#xff08;产品生…

python怎么取消多行缩进

ipython缩进和取消缩进快捷键 整体缩进 &#xff08;1&#xff09;Ctrl】 &#xff08;2&#xff09;tab 取消缩进 &#xff08;1&#xff09;Ctrl【 &#xff08;2&#xff09;shift tab pycharm缩进和取消缩进快捷键 整体缩进 &#xff08;1&#xff09;tab 整体取…

gitlab克隆仓库报错fatal: unable to access ‘仓库地址xxxxxxxx‘

首次克隆仓库&#xff0c;失效了&#xff0c;上网查方法&#xff0c;都说是网络代理的问题&#xff0c;各种清理网络代理后都无效&#xff0c;去问同事&#xff1a; 先前都是直接复制的网页url当做远端url&#xff0c;或者点击按钮‘使用http克隆’ 这次对于我来说有效的远端u…

EMS(energy managment system)从0到1

EMS从0到1 写在前面准备目录&导航设计是什么&#xff1f;做什么&#xff1f;怎么做&#xff1f;我准备怎么做 写在结尾 写在前面 最近几年因为新能源产业的迅速升温&#xff0c;不仅导致我国能源结构的重新分配&#xff0c;也导致新能源相关产业蓬勃发展。我能接触到的就是…

【产品更新】汇匠源零工市场小程序v1.0.18

零工市场 v1.0.18 修复 1.修复若干BUG&#xff0c;提升系统稳定性 我们致力于为用户提供更加高效、便捷的服务。v1.0.18版本的发布&#xff0c;是我们根据用户反馈和市场变化&#xff0c;对产品功能进行的又一次优化和升级。我们将继续努力&#xff0c;不断改进产品&#xff…

高并发处理 --- Caffeine内存缓存库

目录 一.什么是Caffeine&#xff1f; 使用场景&#xff1a; 二.如何使用Caffeine&#xff1f; 1.导入依赖&#xff1a; 2.在java项目中使用&#xff1a; 三.对缓存项的驱逐&#xff1a; 1.容量驱逐&#xff08;Maximum Size&#xff09;&#xff1a; 2.过期驱逐&#xff…