Php laravel 5 mime图像验证在上载mp3或mp4时引发异常

Php laravel 5 mime图像验证在上载mp3或mp4时引发异常,php,image,validation,laravel,laravel-5,Php,Image,Validation,Laravel,Laravel 5,好的。。我不知道你们中有多少人在拉拉维尔有这个问题。。我找不到任何解决办法 我正在使用验证器通过设置mime类型jpeg、bmp和png的规则来验证上传的图像。 如果不是这些类型,我会闪现一条错误消息 它适用于所有文件类型,但当我上传mp3或mp4时,控制器中会显示异常 MyImageController.php代码: public function addImageDetails() { $input = Request::all(); $ID = $in

好的。。我不知道你们中有多少人在拉拉维尔有这个问题。。我找不到任何解决办法

我正在使用验证器通过设置mime类型jpeg、bmp和png的规则来验证上传的图像。 如果不是这些类型,我会闪现一条错误消息

它适用于所有文件类型,但当我上传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]等。

请尝试使用以下干净的代码:

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

}

在这种情况下,分配
请求::all()后,有一个名为
image
的规则可能会对您有所帮助
到变量
$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');;
}

也许
$input['id']
?发现问题不在mp3或mp4上。。itz的大小与我上传的大小相同。。如果它太大,那么php似乎有空的post变量。。这就是我得到未定义索引的原因:ID…,太好了。那你就把它作为答案贴上去吧。我还是不知道怎么解决这个问题。。我是否需要更改php上载设置。。你能不能。。给我一个好的答案来帮助我我想处理这个错误。。你也能说说如何增加尺寸吗。。感谢您的快速回复:)我也试过这个。。但是它不起作用。。发现问题出在我上传的文件的大小上。。如果它太大,就会抛出一个错误。。你可以给我一个方法来解决这个问题吗?考虑编辑<代码>上传AdxAdMax文件FIXESIZ/<代码> <代码> php.ini >代码>文件,在phpini文件中设置文件上传文件的足够大小限制为64米。但是我甚至不能上传3MB大小的文件。。有什么想法吗?看看
post\u max\u size
var sizeyep:)设置post\u max\u size的效果。。但是我应该通过签入上传文件的大小来处理这个问题。非常感谢:)但是这个逻辑仍然会显示更大的非图像文件的消息,知道吗??想办法是的,我们可以改变。。是否要为较大的非映像文件显示其他错误消息?