美文网首页PHP经验分享
php后端接口如何接收图片,并上传oss

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

作者: 这个超人不会飞阿 | 来源:发表于2019-08-01 11:47 被阅读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);
        }
    

    相关文章

      网友评论

        本文标题:php后端接口如何接收图片,并上传oss

        本文链接:https://www.haomeiwen.com/subject/xjlqdctx.html