1.引入qrcode插件:
2.功能页面-生成二维码按钮:
3.生成二维码-代码:
4.后台代码-通过vendor方法引入:
//下载生成的二维码-引用方法1 public function qrcode1(){ header("Content-Type: text/html;charset=utf-8"); //引入二维码生成插件 vendor("phpqrcode.phpqrcode"); // 生成的二维码所在目录+文件名 $path = "./Uploads/QRcode/";//生成的二维码所在目录 if(!file_exists($path)){ mkdir($path, 0700,true); } $time = time().'.png';//生成的二维码文件名 $fileName = $path.$time;//1.拼装生成的二维码文件路径 $data = '20171214';//2.生成二维码的数据(扫码显示该数据) $level = 'L'; //3.纠错级别:L、M、Q、H $size = 10;//4.点的大小:1到10,用于手机端4就可以了 ob_end_clean();//清空缓冲区 \QRcode::png($data, $fileName, $level, $size);//生成二维码 //文件名转码 $file_name = iconv("utf-8","gb2312",$time); $file_path = $_SERVER['DOCUMENT_ROOT'].'/'.$fileName; //获取下载文件的大小 $file_size = filesize($file_path); // $file_temp = fopen ( $file_path, "r" ); //返回的文件 header("Content-type:application/octet-stream"); //按照字节大小返回 header("Accept-Ranges:bytes"); //返回文件大小 header("Accept-Length:".$file_size); //这里客户端的弹出对话框 header("Content-Disposition:attachment;filename=".$time); echo fread ( $file_temp, filesize ( $file_path ) ); fclose ( $file_temp ); exit (); }
拓展-浏览器显示
ThinkPHP引入二维码类的方式还有一种,就是通过import进行引入,与vendor稍有不同
1.引入qrcode插件
2.调用qrcode2方法:
3.后台代码-通过import引入:
public function qrcode2(){ header("content-type:text/html;charset=utf-8"); import("Vendor.phpqrcode.Phpqrcode");//引入Phpqrcode.class.php $path = "./Uploads/QRcode/";//创建路径 if(!file_exists($path)){ mkdir($path, 0700,true);//创建目录 } $time = time().'.png'; //创建文件名 $fileName = $path.$time;//1.命名生成的二维码文件 $data = '20171214';//2.生成二维码的数据(扫码显示该数据) $level = 'L'; //3.纠错级别:L、M、Q、H $size = 10;//4.点的大小:1到10,用于手机端4就可以了 ob_end_clean();//清空缓冲区 //生成二维码-不保存:在当前浏览器显示 \QRcode::png($data, false, $level, $size); //文件名转码 $file_name = iconv("utf-8","gb2312",$time); $file_path = $_SERVER['DOCUMENT_ROOT'].'/'.$fileName; //获取下载文件的大小 $file_size = filesize($file_path); $file_temp = fopen ( $file_path, "r" ); //返回的文件 header("Content-type:application/octet-stream"); //按照字节大小返回 header("Accept-Ranges:bytes"); //返回文件大小 header("Accept-Length:".$file_size); //这里客户端的弹出对话框 header("Content-Disposition:attachment;filename=".$time); echo fread ( $file_temp, filesize ( $file_path ) ); fclose ( $file_temp ); exit (); }