我正在尝试一次上传多张图片。文件正在上载,但是即使它们不是有效的iamge,也可以通过验证。我想上传所有有效文件,并返回一条消息,其中包含未成功上传的文件数量。
我的功能:
public function addImages($id, Request$request)
{
$files = Input::file('images');
$uploaded = 0;
$failed = 0;
foreach ($files as $file) {
// Validate each file
$rules = array('file' => 'required|image');
$validator = Validator::make(array('file'=> $file), $rules);
if($validator->passes()) {
$destinationPath = 'uploads';
$filename = $file->getClientOriginalName();
$upload_success = $file->move($destinationPath, $filename);
if($upload_success){
$uploaded ++;
}
else {
$failed ++;
}
} else {
$failed ++;
}
}
\Session::flash('success_message',$uploaded.' files uploaded.');
if($failed > 0){
\Session::flash('errors','Some files werent valid.');
}
return redirect('admin/myroute/'.$id);
}
由于某些原因,如果我上传的文件没有任何扩展名,它们仍会上传。我究竟做错了什么?
您不应在控制器中对其进行验证,而应对其使用每种方法,例如您的请求文件中的示例。
protected function getValidatorInstance()
{
$validator = parent::getValidatorInstance();
$validator->each('files', ['image']);
return $validator;
}
这只是检查所有文件。
更多信息,
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句