我正在尝试验证多选文件上传到Laravel。
我print_r
我的Request
,但我不明白为什么在显然所有上传内容都是图片的情况下都无法验证。
print_r
输出:
Array([file] => Array([0] => Illuminate \ Http \ UploadedFile Object( [test:Symfony \ Component \ HttpFoundation \ File \ UploadedFile:private] => [ORIGINALNAME:Symfony的\分量\ HttpFoundation \文件\ UploadedFile的:私人] => 236x177_3F2.jpg [mimeType:Symfony \ Component \ HttpFoundation \ File \ UploadedFile:private] => image / jpeg [size:Symfony \ Component \ HttpFoundation \ File \ UploadedFile:private] => 19335 [错误:Symfony \ Component \ HttpFoundation \ File \ UploadedFile:private] => 0 [pathName:SplFileInfo:private] =>的/ tmp / phpWyxPrW [fileName:SplFileInfo:private] => phpWyxPrW)[1] => Illuminate \ Http \ UploadedFile对象( [test:Symfony \ Component \ HttpFoundation \ File \ UploadedFile:private] => [ORIGINALNAME:Symfony的\分量\ HttpFoundation \文件\ UploadedFile的:私人] => Bierstadt_Sunrise_Lg_1966-1 [1] .jpg [mimeType:Symfony \ Component \ HttpFoundation \ File \ UploadedFile:private] => image / jpeg [size:Symfony \ Component \ HttpFoundation \ File \ UploadedFile:private] => 113765 [错误:Symfony \ Component \ HttpFoundation \ File \ UploadedFile:private] => 0 [pathName:SplFileInfo:private] =>的/ tmp / php5GtG4F [fileName:SplFileInfo:private] => php5GtG4F)))
代码:
if($typeof=="photo")
{
$photo = $request;
print_r($photo::all());
$validator = Validator::make($photo::all(), [
'file' => 'required|image|mimes:png,gif,jpeg,bmp'
]);
if ($validator->fails()) {
abort(500,"Not an image!");
}
即使您可以从print_r
输出中看到它们是图像,它总是会因图像错误而中止。
看起来像嵌套数组我试图抵消我的验证请求然后我得到了未定义的偏移量,请帮助我获取实际的文件数据以进行正确的验证。
答案 0 :(得分:3)
嗯,这不是图像,而是一系列图像。
您需要像这样验证:
if($typeof=="photo")
{
$photo = $request;
print_r($photo::all());
$validator = Validator::make($photo::all(), [
'file.*' => 'required|image|mimes:png,gif,jpeg,bmp'
]);
if ($validator->fails()) {
abort(500,"Not an image!");
}
}