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 ();
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
拓展-浏览器显示
ThinkPHP引入二维码类的方式还有一种,就是通过import进行引入,与vendor稍有不同
- 1
- 2
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 ();
}