我通过使用mime类型jpeg,bmp和png设置规则,使用Validator验证上传的图像。 如果不是这些类型,我会刷一条错误消息。
它适用于所有文件类型,但是当我上传mp3或mp4时,它在我的控制器中显示异常。
MyImageController.php代码:
public function addImageDetails()
{
$input = Request::all();
$ID = $input['ID'];
$name = $input['name'];
$file = array('image' => Input::file('image'));
$rules = array('image' => 'required|mimes:jpeg,jpg,bmp,png');
$validator = Validator::make($file, $rules);
if ($validator->fails()) {
\Session::flash('flash_message_error','Should be an Image');
return view('addDetails');
}
else {
//If its image im saving the ID, name and the image in my DB
}
这是我上传mp3或mp4时出现的错误
ErrorException in MyImageController.php line 25:
Undefined index: ID
验证所有其他文件类型,如[.txt,.doc,.ppt,.exe,.torrent]等。
答案 0 :(得分:1)
将Request::all();
分配给变量$input
$input = Request::all();
然后你应该检查它是否有任何价值
if (isset($input['ID']))
如果条件满足,则应允许其继续进行其他步骤,您应该返回包含错误消息的视图,如下面的代码所示。
if (isset($input['ID']))
{
$ID = $input['ID'];
$name = $input['name'];
$file = array('image' => Input::file('image'));
}
else
{
return view('addDetails')->with('message', 'Image size too large');;
}
更新:
在这里检查图像类型
if (isset($input['ID']))
{
if (Input::file('image'))
{
$ID = $input['ID'];
$name = $input['name'];
$file = array('image' => Input::file('image'));
else
{
return view('addDetails')->with('message', 'Uploaded file is not an image');;
}
}
else
{
return view('addDetails')->with('message', 'Image size too large');;
}
答案 1 :(得分:0)
尝试使用这个干净的代码:
public function addImageDetails(Request request){
$this->validate($request, [
'image' => ['required', 'image']
]);
//If its image im saving the ID, name and the image in my DB
}
在这种情况下,有一条名为image
的规则可能对您有所帮助