保存带参数的二维码插件

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 ();
    }

猜你喜欢

转载自blog.csdn.net/qq_37391017/article/details/80710902