生成二维码图片,并保存至服务器指定文件夹

引用phpqrcode.php类,该类放在vender中

使用vender("文件夹名.类名"),代码中的$this->path是根目录下的所在文件,如初始化时定义:

$this->path = 'upload/'

生成的图片就在根目录的upload目录下

 /**  二维码制作  *****************************/
    /**
     * 封装生成二维码函数
     * @param $url
     * @return string
     */
    public function getQrcode($url)
    {
        /*生成二维码*/
        vendor("phpqrcode.phpqrcode");
        $data   = $url;
        $level  = 'L';// 纠错级别:L、M、Q、H
        $size   = 4;// 点的大小:1到10,用于手机端4就可以了
        $QRcode = new \QRcode();
        ob_start();
        $QRcode->png($data, false, $level, $size, 2);
        $imageString = base64_encode(ob_get_contents());
        ob_end_clean();
        $base64_image_content = "data:image/png;base64," . $imageString;
        $new_file             = $this->base64_image_content($base64_image_content);
        return $new_file;
    }

    /***
     * [将Base64图片转换为本地图片并保存]
     * @E-mial [email protected]
     * @TIME   2017-04-07
     * @WEB    http://blog.iinu.com.cn
     * @param  [Base64] $base64_image_content [要保存的Base64]
     * @param  [目录] $path [要保存的路径]
     */
    public function base64_image_content($base64_image_content, $this->path)
    {
        //匹配出图片的格式
        if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result)) {
            $type     = $result[2];
            $new_file = $path . date('Ymd', time()) . "/";
            if (!file_exists($new_file)) {
                //检查是否有该文件夹,如果没有就创建,并给予最高权限
                mkdir($new_file, 0777, true);
//                $path_arr = explode('/', $new_file);
//                $path_str = '';
//                foreach ($path_arr as $key => $value) {
//                    $path_str .= $value . '/';
//                    chmod($path_str, 0777);
//                }
            }
            $new_file = $new_file . date("His", time()) . '_' . ".{$type}";
            if (file_put_contents($new_file, base64_decode(str_replace($result[1], '', $base64_image_content)))) {
                // chmod($new_file,0777);
                return $new_file;
            } else {
                return false;
            }
        } else {
            return false;
        }
    }

你可能感兴趣的:(PHP)