Laravel 5.1验证文件数组不起作用

时间:2016-04-30 09:03:02

标签: php laravel laravel-5.1

我正在尝试验证一组文件以检查它们是否是正确的mime类型但是它无法正常工作我收到以下错误:

Undefined index: files.0

我得到了这个错误试图告诉我的内容,但我不明白为什么会这样。以下是我提交的内容:

------WebKitFormBoundary8wDAKRGDzd5kLrTO
Content-Disposition: form-data; name="files[]"; filename="eye design.png"
Content-Type: image/png


------WebKitFormBoundary8wDAKRGDzd5kLrTO
Content-Disposition: form-data; name="files[]"; filename="hd flamingo.tif"
Content-Type: image/tiff


------WebKitFormBoundary8wDAKRGDzd5kLrTO
Content-Disposition: form-data; name="files[]"; filename="Picture 3.tif"
Content-Type: image/tiff


------WebKitFormBoundary8wDAKRGDzd5kLrTO
Content-Disposition: form-data; name="files[]"; filename="Picture 16.tif"
Content-Type: image/tiff


------WebKitFormBoundary8wDAKRGDzd5kLrTO
Content-Disposition: form-data; name="files[]"; filename="Picture 23.tif"
Content-Type: image/tiff


------WebKitFormBoundary8wDAKRGDzd5kLrTO--

这是我的要求:

<?php namespace App\Http\Requests;

use Response;
use Illuminate\Foundation\Http\FormRequest;

class UploadRequest extends FormRequest
{
    public function rules()
    {
        $rules = [];
        foreach($this->files as $key => $file) {
            $rules['files.'.$key] = 'required|image|mimes:jpeg,png,gif';
        }
        return $rules;
    }

    public function messages()
    {
        $messages = [];

        foreach($this->files as $key => $file) {
            $messages['files.'.$key.'.required'] = 'You must upload a file.';
            $messages['files.'.$key.'.image'] = 'The upload file must be an image.';
            $messages['files.'.$key.'.mimes'] = 'The image must be one of the following types: JPEG, PNG, or GIF.';
        }
        return $messages;
    }

    public function authorize()
    {
        return true;
    }

}

在我的请求的规则方法中,如果我print_r($this->files)这就是我得到的:

Symfony\Component\HttpFoundation\FileBag Object
(
    [parameters:protected] => Array
        (
            [files] => Array
                (
                    [0] => Symfony\Component\HttpFoundation\File\UploadedFile Object
                        (
                            [test:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 
                            [originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => eye design.png
                            [mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => image/png
                            [size:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 812968
                            [error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0
                            [pathName:SplFileInfo:private] => C:\xampp\tmp\php4898.tmp
                            [fileName:SplFileInfo:private] => php4898.tmp
                        )

                    [1] => Symfony\Component\HttpFoundation\File\UploadedFile Object
                        (
                            [test:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 
                            [originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => hd flamingo.tif
                            [mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => image/tiff
                            [size:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 4579592
                            [error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0
                            [pathName:SplFileInfo:private] => C:\xampp\tmp\php48A9.tmp
                            [fileName:SplFileInfo:private] => php48A9.tmp
                        )

                    [2] => Symfony\Component\HttpFoundation\File\UploadedFile Object
                        (
                            [test:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 
                            [originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => Picture 3.tif
                            [mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => image/tiff
                            [size:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 4158508
                            [error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0
                            [pathName:SplFileInfo:private] => C:\xampp\tmp\php48B9.tmp
                            [fileName:SplFileInfo:private] => php48B9.tmp
                        )

                    [3] => Symfony\Component\HttpFoundation\File\UploadedFile Object
                        (
                            [test:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 
                            [originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => Picture 16.tif
                            [mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => image/tiff
                            [size:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 6080280
                            [error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0
                            [pathName:SplFileInfo:private] => C:\xampp\tmp\php48DA.tmp
                            [fileName:SplFileInfo:private] => php48DA.tmp
                        )

                    [4] => Symfony\Component\HttpFoundation\File\UploadedFile Object
                        (
                            [test:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 
                            [originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => Picture 23.tif
                            [mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => image/tiff
                            [size:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 4279880
                            [error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0
                            [pathName:SplFileInfo:private] => C:\xampp\tmp\php48EA.tmp
                            [fileName:SplFileInfo:private] => php48EA.tmp
                        )

                )

        )

)

0 个答案:

没有答案