base64格式的圖片上傳阿里雲


base64格式的圖片上傳阿里雲

上傳圖片的時候,除了普通的圖片上傳,還有一張圖片信息是以base64格式發送到后台的。

后台接受base64格式的圖片,上傳至阿里雲代碼:(主要是將base64轉化成臨時的圖片文件,上傳后刪除即可)

   /**
     * @param $imgBase64 獲取圖片base64字符串
     * return String '返回阿里雲上的圖片路徑
     */
    public function uploadUserImg($imgBase64,$workno,$realName)
    {
        // 圖片上傳測試
        $bucketName = getLinkageNameByCode('OSS_CONFIG','BUCKET_NAME'); // 存儲空間名稱
        $accessId = getLinkageNameByCode('OSS_CONFIG','ACCESS_ID');
        $accessKey = getLinkageNameByCode('OSS_CONFIG','ACCESS_KEY');
        $endpoInt = getLinkageNameByCode('OSS_CONFIG','ENDPOINT'); // OSS數據中心訪問域名
        if (preg_match('/^(data:\s*image\/(\w+);base64,)/',$imgBase64,$res)) {
            //獲取圖片類型
            $type = $res[2];
            //圖片名字
            $fileName = time().'.'.$type;
            // 臨時文件
            $tmpfname = tempnam("/tmp/", "FOO");
            $handle = fopen($tmpfname, "w");
            if (fwrite($handle,base64_decode(str_replace($res[1],'', $imgBase64)))){
                $res = OssUtil::FileUpload($accessId,$accessKey,$endpoInt,$bucketName,'avator/'.$workno.'/'.$realName.'/'.$fileName,$tmpfname);
                fclose($handle);
                unlink($tmpfname);
                return $res['info']['url'];
            }
        }
    }
 /**
     * 用於上傳文件
     * @param $ACCESS_ID string OSS獲得的AccessKeyId
     * @param $ACCESS_KEY string OSS獲得的AccessKeySecret
     * @param $ENDPOINT string OSS數據中心的訪問域名
     * @param $bucket_name string 存儲空間名稱
     * @param $object string 文件名稱
     * @param $filePath string 由本地文件路徑加文件名包括后綴組成,例如/users/local/myfile.txt
     * @return null|void
     */
    function FileUpload($ACCESS_ID,$ACCESS_KEY,$ENDPOINT,$bucket_name,$object,$filePath){
        try{
            $ossClient = new OssClient($ACCESS_ID, $ACCESS_KEY, $ENDPOINT);
            $getReturn = $ossClient->uploadFile($bucket_name, $object, $filePath);
        } catch(OssException $e) {
            \Think\Log::record(__FUNCTION__ . ": upload FAILED\n", 'INFO');
            \Think\Log::record("upload FAILED : ".$e->getMessage() . "\n", 'INFO');
            return $e->getMessage();
        }
        return $getReturn;
    }

 


免責聲明!

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



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