阿里雲對象存儲 OSS-base64 上傳圖片


原地址:https://help.aliyun.com/document_detail/88473.html?spm=a2c4g.11186623.6.1090.316c145eysHW9d

 

方法封裝:  
public function uploads(Request $request)
{
	$pictrue = ''; // 獲取圖片轉base64的字符串
	$result = [];
	// 轉化base64編碼圖片 jpeg、jpg、png、bmp、gif
	if(preg_match('/^(data:\s*image\/(\w+);base64,)/', $pictrue, $result)) {
		$type = $result[2]; // 獲取圖片類型
		if(in_array($type, array('pjpeg','jpeg','jpg','bmp','png'))) {
			// 圖片名字                
			$fileName = time().rand(1,1000).'.'.$type; // 圖片名稱
			// 臨時文件
			$tmpfname = tempname("./image/", "FOO"); // windows
			$tmpfname = ('/tmp/', 'FOO'); // linux
			// 保存圖片
			$handle = fopen($tmpfname, "w");

			// return [$pic, $result];
			$object = 'school/avatar/'.date('Y/m/d').'/'.$fileName; // 阿里雲上傳地址
			if (fwrite($handle, base64_decode(str_replace($result[1], '', $pic)))) 
			{
				// 上傳圖片至阿里雲OSS
				$ossClient = new Aliyunoss();
				$data = $ossClient->uploads($object, $tmpfname);
				// return [$pic, $result, $data];
				// 關閉緩存
				fclose($handle);
				// 刪除本地該圖片
				unlink($tmpfname);
				// 返回圖片鏈接
				return StatusCode::getCode(0, ['data' => $data]);
			}else {
				return response(['message'=>'圖片上傳失敗'], 200);
			}

		}else {
			return response(['message'=>'圖片類型錯誤'], 200);
		}                    
	} else {
		return response(['message'=>'圖片編碼錯誤'], 200);
	}
}

  

阿里雲OSS
public function uploads($object, $content)
{
	$ossClient = self::getOssClient();
	if (is_null($ossClient)) exit(1);
	$bucket = self::getBucketName();
	try{
		$ossClient->uploadFile($bucket, $object, $content);
	} catch(OssException $e) {
		self::println(__FUNCTION__ . ": FAILED\n");
		self::println($e->getMessage() . "\n");
		$object = 'error';
	}
	return $object;
}

  


免責聲明!

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



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