【功能点】php生成商品二维码

该项目是thinkcmf二开,使用了一个qrcode的类库


点击下载类库

/**
 * 单个商品生成二维码
 * 该功能有点类似于电子价签,扫码后能看到商品信息
 */
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);
}



猜你喜欢

转载自blog.csdn.net/qq_33862644/article/details/80356620