通过TP框架引入Qrcode插件,然后调用插件生成二维码,并保存
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 ();}