前端上傳圖片前轉爲base64編碼,拿到後解碼進行存儲,整個過程還是很簡單的,代碼中有yii2的影子,如果不需要刪了就可以了,最近太懶了,就不整理了,其實也是在網上抄的 …. !-!
public function actionMemberCenter()
{
header('Content-type:text/html;charset=utf-8');
$base64_image_content = \Yii::$app->request->post('headpic',null);
if(!$base64_image_content) return ['code'=>404,'msg'=>'數據不能爲空',data=>null];
$api_url = \Yii::$app->params['api_url'];
if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result)){
$type = $result[2];
$new_file = "./img/lvyou/headpic/".date('Ymd',time())."/";
if(!file_exists($new_file))
{
//檢查是否有該文件夾,如果沒有就創建,並給予最高權限
mkdir($new_file, 0700);
}
$new_file = $new_file.time().".{$type}";
// base64解碼後保存圖片
if (file_put_contents($new_file, base64_decode(str_replace($result[1], '', $base64_image_content)))){
$img_url = $api_url . trim($new_file,'.' );
// 更新用戶的頭像地址路徑
$member = Member::findOne($this->mid);
$member->litpic = $img_url;
if($member->save())
return ['code'=>200,'msg'=>'頭像保存成功','data'=>['headpic'=>$img_url]];
else
return ['code'=>4042,'msg'=>'頭像保存失敗','data'=>['headpic'=>'']];
}else
return ['code'=>4041,'msg'=>'文件保存失敗','data'=>null];
}
}