Laravelvalidation器和excel文件错误

我有一个input字段,谁allaow人上传文件。 我希望他们能够上传,doc文件等文件,以及像csv,xlsx这样的文件。

当我尝试使用.doc没有问题,但是当我尝试使用excel文件时,validation程序失败并且说不是很好的扩展。

在这里你可以看到我的代码,这两行注释是我尝试过的另一个解决scheme,而且它也不工作。

任何帮助是受欢迎的。

public function postFile(Request $request) { //Règle de validation avec les type de fichiers acceptés if(isset($request->file)){ //dd($request); $validator=Validator::make($request->all(),[ 'file'=>'required|max:50000|mimes:xlsx,doc,docx,ppt,pptx,ods,odt,odp,application/csv,application/excel, application/vnd.ms-excel, application/vnd.msexcel, text/csv, text/anytext, text/plain, text/xc, text/comma-separated-values, inode/x-empty, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', /* 'extension' => strtolower($request->file->getClientOriginalExtension()), 'extension'=>'required|in:doc,csv,xlsx,xls,docx,ppt,odt,ods,odp'*/ ]); if ($validator->fails()) { return back() ->withErrors($validator); } 

当你想写一个扩展( xlsx,doc,docx )时使用“mimes”。 在使用MIMEtypes的应用程序/ vnd.ms-excel时,您必须使用validation规则mimetype

更多的mimetypes: 更多的mimetypes

 $validator=Validator::make($request->all(),[ //use this 'file'=>'required|max:50000|mimes:xlsx,doc,docx,ppt,pptx,ods,odt,odp' //or this 'file'=>'required|max:50000|mimetypes:application/csv,application/excel, application/vnd.ms-excel, application/vnd.msexcel, text/csv, text/anytext, text/plain, text/xc, text/comma-separated-values, inode/x-empty, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' ] 

好,我的错 我曾尝试在这个网站上find其他的解决scheme,它的工作。 感谢Odin的帮助。 这是我在这个网站上的第一个问题,我会看看我现在能不能帮助别人。 我poste代码解决在某人需要:)。

 $validator = Validator::make( [ 'file' => $request->file, 'extension' => strtolower($request->file->getClientOriginalExtension()), ], [ 'file' => 'required', 'extension' => 'required|in:doc,csv,xlsx,xls,docx,ppt,odt,ods,odp', ] 

);

首先说明这不是正确的解决办法 。 但是你可以试试这个。

我也search了这一点,并有太多的麻烦validationexcel file和他们的哑剧型不工作,不幸的是。

 if($request->hasFile('file')) { $extension = File::extension($request->file->getClientOriginalName()); if ($extension == "xlsx" || $extension == "xls" || $extension == "csv") { //'Your file is a valid xls or csv file' }else { //'File is a '.$extension.' file.!! Please upload a valid xls/csv file..!!'); } } 

在namspace中包含必须use File;

您可以通过这种方式validation任何文件,谢谢。