laravel判断上传文件类型大小及尺寸分辨率

发布时间:2022-10-06 23:10:27 阅读:866次

平时上传需要判断文件的类型大小及尺寸分辨率

写起来非常不优雅

如何用requests来验证

以下为方法

<?php namespace App\Http\Requests;

use App\Http\Requests\RequestBase;

class Upload extends RequestBase
{

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'file' => 'required|file|mimes:jpeg,bmp,png,gif|max:1024|dimensions:width=800,height=600',
        ];
    }

    public function attributes()
    {
        return [
            'file'=>'上传文件',
        ];
    }


}

以下为常规的方法

    public function upload(Request $request){
        if (!$request -> hasFile('file')) {
            return $this->jsonError('请上传图片');
        }
        $file = $request->file('file');
        $tmpfile = $file->getRealPath();
        $file_size = getimagesize($tmpfile);
        if(!$file_size){
            return $this->jsonError('图片格式不正确');
        }
        if($file->getSize() > 1024000){
            return $this->jsonError('图片大小不得超过1M');
        }
        $ext = $file->getClientOriginalExtension();
        if(!file_exists("uploads")){
            mkdir("uploads");
        }
        $dir_y = "uploads/".date('Y');
        if(!file_exists($dir_y)){
            mkdir($dir_y);
        }
        $dir_m = $dir_y."/".date('m');
        if(!file_exists($dir_m)){
            mkdir($dir_m);
        }
        $dir_d = $dir_m."/".date('d');
        if(!file_exists($dir_d)){
            mkdir($dir_d);
        }
        $filename = uniqid().".".$ext;
        $file->move($dir_d,$filename);
        $data['filename'] = "http://".$_SERVER['HTTP_HOST']."/".$dir_d."/".$filename;
        return $this->jsonData($data);
    }

如有问题,可以QQ搜索群1028468525加入群聊,欢迎一起研究技术

支付宝 微信

有疑问联系站长,请联系QQ:QQ咨询

转载请注明:laravel判断上传文件类型大小及尺寸分辨率 出自老鄢博客 | 欢迎分享