您现在的位置是:网站首页>>PHP>>Yii

Yii实现base64图片上传

发布时间:2019-04-30 17:00:50作者:wangjian浏览量:682点赞量:0

    在yii如何将上传的base64格式的图片保存起来呢?下面为我记录的实现方法:

    public function actionUpload()
    {
        $request = Yii::$app->request;
        $image = $request->post('fileVal');//获取上传的base64图片信息
        if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $image, $result)) {
            $type = $result[2];
            //创建上传目录
            $path = 'upload/' . date('Ymd',time()) . '/';
            $fullPath = Yii::getAlias('@webroot') . '/' . $path;
            FileHelper::createDirectory($fullPath);////创建目录
            $fileName = time() . '.' . $type;
            //报错hase64图片
            if (file_put_contents($fullPath . $fileName, base64_decode(str_replace($result[1], '', $image)))) {
                return $this->asJson([
                    'type' => 'success',
                    'url' => $path . $fileName
                ]);
            } else {
                return $this->asJson([
                    'type' => 'error',
                    'message' => '图片上传失败!'
                ]);
            }
        } else{
            return $this->asJson([
                'type' => 'error',
                'message' => '无效的图片文件!'
            ]);
        }
    }

    根据上述的方法就可以实现base64图片上传

0 +1