php將前台傳遞過來的base64格式的圖片轉存到服務器硬盤


    /**
     * base64格式轉存圖片
     * @param int $shopid
     * @param string $filename 文件名
     * @param string $base64 上傳的文件的 base64格式
     * @param string $filePath 要保存的路徑
     * @return number[]|string[]|string
     * @author Donlyn<br>
     * created at 2017-08-24
     */
    function base64_upload($shopid,$filename,$base64, $filePath='/upload/shop_info_check_qrcode/') {
        if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64, $result)){
                
                // 圖片后綴
            $type = $result[2];
            
            // 保存位置--圖片名
            $image_name = ($filename ? $filename : date('His') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT) ). "." . $type;
            $filePath = $filePath ? $filePath : '/upload/shop_info_check_qrcode/';
            $image_url = $filePath . $shopid . '/' . $image_name;
            if (! is_dir(dirname('.' . $image_url))) {
                /* mkdir(dirname('.' . $image_url));
                chmod(dirname('.' . $image_url), 0777); */
                $public_obj = new PublicAction();
                $public_obj->Directory(dirname('.'.$image_url));
                //umask($oldumask);
            }
            if(file_exists('.'.$image_url)){
                return array(
                    'sta' => 0,
                    'code' => 2,
                    'filename' => $filename,
                    'imageName' => $image_name,
                    'url' => $image_url,
                    'msg' => '圖片已存在',
                );
            }
            // 解碼
            $decode = base64_decode(str_replace($result[1], '', $base64));
            if (file_put_contents('.' . $image_url, $decode)) {
                $data['sta'] = 1;
                $data['code'] = 0;
                $data['filename'] = $filename;
                $data['imageName'] = $image_name;
                $data['url'] = $image_url;
                $data['msg'] = '保存成功!';
            } else {
                $data['sta'] = 0;
                $data['code'] = 1;
                $data['filename'] = $filename;
                $data['imgageName'] = '';
                $data['url'] = '';
                $data['msg'] = '圖片保存失敗!';
            }
        }else{
            $data['sta'] = 0;
            $data['code']=1;
            $data['filename'] = $filename;
            $data['imgageName']='';
            $data['url']='';
            $data['msg']='base64圖片格式有誤!';
        }       
        return $data;
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM