PHP经验分享

php后端接口如何接收图片,并上传oss

2019-08-01  本文已影响1人  这个超人不会飞阿
/**
     * Bin
     * 2019.3.14
     * 上传身份证的照片
     * @param  file $file [文件]
     */
    public function uploadImgNoBase64Action() {
        // oss的存储空间名称
        $bucket = isset($_REQUEST['bucket']) ? $_REQUEST['bucket'] : ''; 
        $accessKeyId = "*****就是不给你看******";
        $accessKeySecret = "*******就是不给你看****";
        // Endpoint以杭州为例,其它Region请按实际情况填写。
        $endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
        $filedir = APP_PATH."/app/views/uploadfiles/";
        if(empty($_FILES["file"]))
        {
            $result['code'] = 500;
            $result['msg'] = "请选择要上传的图片";
            $this->setJsonResponse($result);
            return ;
        }
        if($_FILES["file"]["error"])
        {
            $result['code'] = 500;
            $result['msg'] = $_FILES["file"]["error"];

        }
        else
        {
            //没有出错
            //加限制条件
            //判断上传文件类型为png或jpg且大小不超过1024000B
            // if(($_FILES["file"]["type"]=="image/png"||$_FILES["file"]["type"]=="image/jpeg"||$_FILES["file"]["type"]=="image/jpg")&&$_FILES["file"]["size"]<1024000)
            if(($_FILES["file"]["type"]=="image/png"||$_FILES["file"]["type"]=="image/jpeg"||$_FILES["file"]["type"]=="image/jpg")&&$_FILES["file"]["size"]<4024000)
            {
                //防止文件名重复
                $md5 = md5(time().$_FILES["file"]["name"]);
                $info2=explode(".",$_FILES["file"]["name"]);
                $suffix = strtolower(end($info2));
                $name =  $md5.".".$suffix;
                $fileName = strtolower($filedir.$name);
                //转码,把utf-8转成gb2312,返回转换后的字符串, 或者在失败时返回 FALSE。
                $fileName =iconv("UTF-8","gb2312",$fileName);
                //检查文件或目录是否存在
                if(file_exists($fileName))
                {
                    $result['code'] = 500;
                    $result['msg'] = "该文件已存在";
                }
                else
                {
                    //保存文件,   move_uploaded_file 将上传的文件移动到新位置
                    $a =  move_uploaded_file($_FILES["file"]["tmp_name"],$fileName);//将临时地址移动到指定地址
                        if($_FILES["file"]["type"]=="image/png") {
                            $fileName1 = time().'.png';
                        }
                        if($_FILES["file"]["type"]=="image/jpeg") {
                            $fileName1 = time().'.jpeg';
                        }
                        if($_FILES["file"]["type"]=="image/jpg") {
                            $fileName1 = time().'.jpg';
                        }
                       
                        try {
                            $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
                            $aa = $ossClient->uploadFile($bucket, $fileName1, $fileName);
                            $result['msg'] = $aa['info']['url'];  
                        } catch (OssException $e) {
                            $this->setJsonResponse($e->getMessage());
                        }
                        
                }
            }
            else
            {
                $result['code'] = 500;
                $result['msg'] = "文件类型不对11";
                $result['imgtype'] = $_FILES["file"]["type"];

            }
        }
        $this->setJsonResponse($result);
    }
上一篇下一篇

猜你喜欢

热点阅读