php 上传图片

下面是我自己的个人见解代码。

html:


控制器controller:

function upload(Request $request)
{
        $info = I('post.');
       
        $file = $this->request->file('file');
        if(empty($file)){
            $this->error('请上传图片');
        }
        //上传图片的后缀名
        $name = $file->getInfo('name');
        $exten = substr($name,strrpos($name,'.')); 
        $img_name = md5(mt_rand(0,100000).time()); //图片名
        $img_path = ROOT_PATH.'public'.DS.'uploads'.DS.Date('Ymd');//图片保存路径

        //如果不存在此目录,则创建此目录
        if(!is_dir($img_path)){
            mkdir($img_path,0777,true);
        }
        
        $img_src = $img_path.DS.$img_name.$exten; //图片URL

        //上传验证
        $result = $this->validate(
            ['file' => $file],
            ['file'=> 'require|image:100,100,png'],
            ['file.require' => '请选择上传文件','file.image'=> '必须是100*100的PNG格式文件']
        );
        //验证图片
        $pay_img = $file->validate(['ext' => 'jpg,png']);
        //上传图片
        $pay_img->move($img_path,$img_name);

        //插入数据库
        Db::name('image')->insert([        
            'image' =>  $img_src,
            'add_time'  =>  time(),
        ]);
        
        if($info){
            $this->success('文件上传成功');
        }else{
            $this->error('文件上传失败');
        }
    }

你可能感兴趣的:(php 上传图片)