ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
>[info]类库地址:https://download.csdn.net/download/qq_33862644/10421573 - 该项目是thinkcmf二开,使用了一个qrcode的类库 ![](https://box.kancloud.cn/79ffc87d512b5495150e23d4db4504ef_298x343.png) - 控制器 代码 ~~~ /** * 单个商品生成二维码 * 该功能有点类似于电子价签,扫码后能看到商品信息 */ public function qrCode() { //查询要生成二维码的数据 $id = $this->request->param('id'); //接收参数 $res = StockModel::get($id); //查询商品信息 $str = $res['brand']; $brand = iconv('utf-8', 'gbk//TRANSLIT', $str); //生成二维码的时候名字,汉字乱码 $file_name = $brand.'_'.$res['version'].'.png'; $file_path = QRCODE.$brand.'_'.$res['version'].'.png'; //组装数据 $content = "编号:{$res['id']}\n"; $content .= "品牌:{$res['brand']}\n"; $content .= "型号:{$res['version']}\n"; //添加和修改时用-分隔 $content .= "库房名称:{$res['bursary_name']}\n"; $content .= "售价:{$res['sell_price']}\n"; $content .= "剩余数量:{$res['remnant_inventory']}\n"; $content .= "备注:{$res['remarks']}\n"; Loader::import('imooc_QRcode.phpqrcode.qrlib'); /** * 生成二维码 * png($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4, $saveandprint=false) * @param $text 数据 * @param bool $outfile 保存到本地的文件名(保存到跟目录) * @param int $level 容错等级 * @param int $size 尺寸大小 * @param int $margin 图形离边距的尺寸 * @param bool $saveandprint 保存并打印(必须填第2个参数) */ \QRcode::png($content,$file_path,QR_ECLEVEL_L,8,8,true); //赋给个变量,打印才会显示 download($file_name); //生成的二维码,通过浏览器下载到桌面 } ~~~ ~~~ /* 二维码下载 * @param $provider 要下载的文件名 * @param Request $request */ function download($provider) { // 下载二维码 $contenttype = 'image/jpeg'; $dir_path = QRCODE; //图片所在路径 $fileName = $provider; //要下载的文件名 $fileurl = $dir_path.$fileName; //从哪个路径下载 header("Cache-control: private"); header("Content-type: $contenttype"); //设置要下载的文件类型 //header("Content-Length:" . filesize($fileurl)); //设置要下载文件的文件大小 header("Content-Disposition: attachment; filename=" . urldecode($fileName)); //设置要下载文件的文件名 readfile($fileurl); } ~~~