我使用Lumen 5.7创建了一个Web服务。
我正在发送文件数组,但无法使用用于验证Laravel / Lumen上数组的众所周知的方法来对其进行验证:
public function create(Request $request) {
$this->validate($request, [
'phone_number' => 'required',
'latitude' => 'required',
'longitude' => 'required',
'status' => 'required', Rule::in(['pre','authorized','archived']),
'photos' => 'required',
'photos.*' => 'mimes:jpg,jpeg,png,bmp'
]);
}
似乎忽略了我在此处定义的photos
规则。如果我做d($request->all())
,我会得到:
这意味着文件已到达服务器,但无法验证。
这是我用来上传文件的html代码:
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<form class="" action="terrains" method="post" enctype="multipart/form-data">
<input type="file" name="photos[]" value="" multiple>
<input type="submit" name="" value="Send">
</form>
</body>
</html>
我还使用邮递员对其进行了测试:
如您所见,除照片外,其他验证均在正确执行。
由于几个原因,我需要验证:
答案 0 :(得分:1)
由于您已经了解其他字段的作用,因此我只会对添加的新字段发表评论。因此,进行以下编辑。
您的表单:
<form class="" action="terrains" method="post" enctype="multipart/form-data">
<input type="text" name="phone_number" placeholder="Phone Number">
<input type="text" name="longitude" placeholder="Longitude">
<input type="text" name="latitude" placeholder="Latitude">
<input type="text" name="status" placeholder="Status">
<input type="file" name="photos[]" value="" multiple>
<input type="submit" name="" value="Send">
</form>
验证:
public function create(Request $request) {
$this->validate($request, [
'phone_number' => 'required', // required translates to the fact that the field must not be empty.
'latitude' => 'required',
'longitude' => 'required',
'status' => 'required', Rule::in(['pre','authorized','archived']),
'photos' => 'required',
'photos.*' => 'image|max:5000|mimes:jpg,jpeg,png,bmp' // image = Must be an image, max = The image size must not be bigger than the specified size (5MB)
]);
}
答案 1 :(得分:0)
应该是这样
public function create(Request $request) {
$this->validate($request, [
'phone_number' => 'required',
'latitude' => 'required',
'longitude' => 'required',
'status' => 'required', Rule::in(['pre','authorized','archived']),
'photos.*' => 'required|mimes:jpg,jpeg,png,bmp'
]);
}