yii2 下base64 上傳圖片小例子(和yii2沒什麼關係)

前端上傳圖片前轉爲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];
        }
 }
發佈了76 篇原創文章 · 獲贊 30 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章