thinkphp5限制上传文件尺寸大小

单图方法

//单图片上传
    public function upload($file){
        
        // 移动到框架应用根目录/public/uploads/ 目录下
        if($file){
         // 我这里设置的是1兆,单位是字节
            $info = $file->validate(['size'=>1048576,'ext'=>'jpg,png,gif'])->move(ROOT_PATH . 'public' . DS . 'uploads');
            if($info){
                // 成功上传后 获取上传信息
                return $info->getSaveName();
            }else{
                // 上传失败获取错误信息
                $this->error($file->getError());
            }
        }
    }
 
多图方法
// 多图片上传
    public function multiUpload($files){
        // 移动到框架应用根目录/public/uploads/ 目录下
        if($files){
 
 
            $names=[];
            foreach($files as $file){
                // 移动到框架应用根目录/public/uploads/ 目录下,单图最多允许1兆
                $info = $file->validate(['size'=>1048576,'ext'=>'jpg,png,gif'])->move(ROOT_PATH . 'public' . DS . 'uploads');
                if(!$info){
                    // 上传失败获取错误信息
                    $this->error($file->getError());  
                }else{
                    $name=$info->getSaveName();
                    array_push($names,$name);
                }
            }
 
 
            //全部上传成功之后
            $names = implode(',',$names);            
            return $names;
        }
    }
 
调用上传方法
//保存订单信息
    public function save(){
        if(!request()->isPost()){
            $this->error('请求不合法');
        }
 
 
        $data=input('post.');
 
 
        //修改订单
        if(!empty($data['id'])){
 
 
            //如果上传了图片
            $files = request()->file('installPic');
 
 
            if($files){
                $installPic=$this->multiUpload($files);
                $data['installPic']=$installPic;
                
            }else{
                //没有上传图片,就是用原来的图片
                $data['installPic']=$data['lastPic'];
            }
 
 
            //更新订单操作
            $id=intval($data['id']);
            $res=model('Member')->allowField(true)->save($data,['id'=>$id]);
 
 
            if($res){
                return alert_success('订单更新成功');
            }else{
                return alert_error('订单更新失败,请咨询客服人员');
            }    
 
 
        }else{
 
 
            //新增订单
            $files = request()->file('installPic');
            if($files){
                
                $installPic=$this->multiUpload($files);
                $data['installPic']=$installPic;                
            }
 
 
            $res=model('Member')->add($data);//新增操作
            if($res){
                return alert_success('订单录入成功');  
            }else{
                return alert_error('订单录入失败,请咨询客服人员');
            }            
        }
        
    }
 
posted @ 2022-02-11 15:48  陈莺莺呀  阅读(1262)  评论(2编辑  收藏  举报