【问题标题】:Laravel validator does'nt correctly validate file mime typeLaravel 验证器没有正确验证文件 mime 类型
【发布时间】:2023-03-19 12:42:01
【问题描述】:

我使用邮递员将多个文件发送到我的服务器 并且这些文件已正确上传,但在上传前未正确验证

这是我的控制器

   public function store(Request $request)
    {
        // دریافت دایرکتوری مطالبه مربوطه :  $demand=Demand::find(72)->files->first()->file_directoryس
        //{"title":"this is test title","demandContent":"this is test content "} send as form-data request
        //------------------------------------------- Valid Uploaded File ---------------------------------
        $rules = array(
            'file'  => 'required',
            'file.' => 'mimes:doc,pdf,docx,zip,jpg,jpeg,rar'
        );
        $error = Validator::make($request->all(), $rules);
        if($error->fails())
            return response()->json(['errors' => $error->errors()->all()]);
        //-------------------------------------------- Valid Uploaded File -------------------------------
        $request->data=json_decode($request->data); //دریافت به صورت جیسون و تبدیل به شی
        $demand=new Demand(['title' => $request->data->title,'content'=>$request->data->demandContent,'user_id'=>auth('api')->user()->id]);
        if($demand->save()) //اگر درخواست در دیتابیس قبت شد
        {
            //----------------------------File Upload Scope---------------------------------------
            if($request->hasfile('file'))
            {
                $path='public/demands/'.$demand->id.'/files';
                foreach($request->file('file') as $file)
                {
                    $filename=$file->getClientOriginalName();
                    $file->move($path, $filename);
                }
                $demand->files()->save(new File(['file_directory'=>$path]));
            }
            //----------------------------File Upload Scope---------------------------------------
            return response()->json(['demand'=>new DemandResource($demand)],200);
        }
        return response()->json(['state'=>'false']);
    }

【问题讨论】:

    标签: laravel laravel-validation


    【解决方案1】:

    在您的验证规则中,您忘记了*,例如:

    $rules = [
        'file'  => 'required',
        'file.*' => 'required|file|mimes:doc,pdf,docx,zip,jpg,jpeg,rar',
    ];
    

    【讨论】:

      猜你喜欢
      • 2016-08-05
      • 2016-08-16
      • 2013-12-18
      • 2013-11-19
      • 2017-03-07
      • 1970-01-01
      • 2012-10-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多