• Laravel 图片上传


    控制器中代码:

        /**
         * @Name XXX
         * @Description  上传图片接口
         * @Param picture:图片 @ParamTest 图片文件
         * @apiParam   (params) {String} picture 图片文件
         * @Response 通用格式:{"code":响应码,"message":"错误描述","data":{}}
         * data{
         *    path:"图片地址",
         * }
         *
         */
    
        public function uploadCompanyImg(Request $request){
    
            $file = $request->file('picture');
            header('Content-type: application/json');
            // 文件是否上传成功
            if ($file->isValid()) {
                // 获取文件相关信息
                $originalName = $file->getClientOriginalName(); //文件原名
                $ext = $file->getClientOriginalExtension();     // 扩展名
    
                $realPath = $file->getRealPath();   //临时文件的绝对路径
    
                $type = $file->getClientMimeType();     // image/jpeg
                $size =$file->getSize();
                $this->_result['code']=101;
                if($size > 2*1024*1024){
                    $this->_result['message']='文件大小超过2M';
                    echo json_encode($this->_result);
                    exit();
                }
                $extArr = array('jpg','jpeg','png','gif');
                if(!in_array($ext,$extArr)){
                    $this->_result['message']='文件格式不正确';
                    echo json_encode($this->_result);
                    exit();
                }
    
                // 拼接文件名称
                $filename = date('YmdHis') . uniqid() . '.' . $ext;
                // 使用我们新建的upload_company_img本地存储空间(目录)
                //这里的upload_company_img是配置文件的名称
                $bool = Storage::disk('upload_company_img')->put($filename, file_get_contents($realPath));
    
                if($bool){
                    $this->_result['code']=200;
                    $this->_result['message']='成功';
                    $url='https://api.bxbedu.com/static/study/images/company/'.date('Ym',time()).'/'.$filename;
                    $path='/static/study/images/company/'.date('Ym',time()).'/'.$filename;
                    $this->_result['data']=array('url'=>$url,'path'=>$path);
                    echo json_encode($this->_result);
                }else{
                    $this->_result['message']='上传失败';
                    echo json_encode($this->_result);
                }
    
            }else{
                $this->_result['message']='上传失败';
                echo json_encode($this->_result);
            }
    
        }

    /config/filesystems.php的'disks' => 中添加

     'upload_company_img' => [
    
                'driver' => 'local',
                'url' =>  env('APP_URL').'/static',
    
                // 文件将上传到storage/app/uploads目录
                //'root' => storage_path('static/study/situation'),
    
                // 文件将上传到static/study/situation目录 如果需要浏览器直接访问 请设置成这个
    
                'root' => public_path('static/study/images/company/'.date('Ym',time())),
            ],
  • 相关阅读:
    2022春季 哈工大 硕士算法设计与分析 实验一分治算法
    2022 春季 硕士 算法设计与分析 作业
    Ubuntu18.04 没有有线网图标 可以连接wifi
    2022春季 哈工大 硕士算法设计与分析 实验二 搜索算法
    将博客搬至CSDN
    【面向对象课】作业Inherit
    [面向对象课]第二周上机
    CFA 金融工程 2.利用期货的对冲策略
    CFA 金融工程 1.导论:看涨看跌期权/多空头;积木分析法
    移动应用程序开发5 vue
  • 原文地址:https://www.cnblogs.com/liyante/p/9327514.html
Copyright © 2020-2023  润新知