Php Laravel 5.4图像验证不起作用
我有点被困在拉雷维尔的图像验证上了。我必须验证文件输入必须是一个图像,为此我使用了经典的laravel验证方法,但我不知道为什么它不起作用 用户控制器Php Laravel 5.4图像验证不起作用,php,laravel,laravel-5,Php,Laravel,Laravel 5,我有点被困在拉雷维尔的图像验证上了。我必须验证文件输入必须是一个图像,为此我使用了经典的laravel验证方法,但我不知道为什么它不起作用 用户控制器 public function createProfile(Request $request) { $phoneNumber=$request->phoneNumber; if (empty($request->except(['userId','token']))){ $data= array(
public function createProfile(Request $request) {
$phoneNumber=$request->phoneNumber;
if (empty($request->except(['userId','token']))){
$data= array(
'nickName' => '',
'profilePic' => '',
'phoneNumber' => '',
'userHeight' => '',
'userWeight' => '',
'userVertical' => '',
'userSchool' => '',
'homeTown' => '',
);
$this->setMeta("200", "Success");
$this->setData("userDetails", $data);
return response()->json($this->setResponse());
}
if($phoneNumber) {
$validationData= array(
'phoneNumber' => $phoneNumber,
);
$validationRules = array(
'phoneNumber' => [
'regex:/^[0-9]+$/',
'min:10',
'max:15',
Rule::unique('users')->ignore($request->userId, 'userId'),
]
);
if($request->has('profilePic')){
$validationData['profilePic'] = $request->profilePic;
$validationRules['profilePic'] = 'image|mimes:jpeg,bmp,png';
}
$validator = Validator::make($validationData,$validationRules);
if ($validator->fails()) {
$errors = $validator->errors();
if ($errors->first('phoneNumber')) {
$message = $errors->first('phoneNumber');
} else if ($errors->first('profilePic')) {
$message = $errors->first('profilePic');
} else {
$message = Constant::MSG_422;
}
$this->setMeta("422", $message);
return response()->json($this->setResponse());
}
}
$homeTown = $request->homeTown;
$filename='';
$profilePic=$request->file('profilePic');
if(!empty($profilePic)) {
$destinationPath = public_path() . '/uploads/users';
$filename = "image_" . Carbon::now()->timestamp . rand(111, 999) . ".jpg";
$profilePic->move($destinationPath, $filename);
}
$user = User::where('userId',$request->userId)->first();
if($request->hasFile('profilePic')){
$user->profilePic = $filename;
}
$user->nickName=$request->nickName;
$user->phoneNumber=$request->phoneNumber;
$user->userHeight=$request->userHeight;
$user->userWeight=$request->userWeight;
$user->userVertical=$request->userVertical;
$user->userSchool=$request->userSchool;
$user->homeTown=$homeTown;
$user->save();
$this->setMeta("200", "Profile Changes have been successfully saved");
$this->setData("userDetails", $user);
return response()->json($this->setResponse());
}
我认为您的验证不起作用的原因是您在其中添加了规则:
if($request->has('profilePic')){
这需要是$request->hasFile('profilePic')
希望这有帮助 我认为您的验证不起作用的原因是您在其中添加了规则:
if($request->has('profilePic')){
这需要是$request->hasFile('profilePic')
希望这有帮助 你可以这样用,我觉得这样更好
if($request->hasFile('profilePic')){
$rules = array(
'profilePic' => 'required | mimes:jpeg,jpg,png',
);
}
$validator = Validator::make($request->all(), $rules);
你可以这样用,我觉得这样更好
if($request->hasFile('profilePic')){
$rules = array(
'profilePic' => 'required | mimes:jpeg,jpg,png',
);
}
$validator = Validator::make($request->all(), $rules);
只需使用这个进行验证。若你们必须处理这种情况,那个么就进行一步一步的调试
$this->validate($request, [
'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:5120',
'description' => 'required'
])) 只需将其用于验证。若你们必须处理这种情况,那个么就进行一步一步的调试
$this->validate($request, [
'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:5120',
'description' => 'required'
])) 您是否检查了$\u文件对象的profilePic密钥?没有。稍后我将检查是否插入到数据库中,并尝试使用print\r($\u文件)进行打印;是否找到正确的值。然后检查验证。是否检查了$\u FILES对象的profilePic键?否。稍后我将检查是否插入到数据库中,并尝试使用print\r($\u文件)进行打印;是否找到正确的值。然后检查验证。