Laravel 5验证有效文件类型上的csv文件错误

时间:2015-03-20 05:22:09

标签: php validation csv laravel

我正在尝试使用

验证上传的csv文件
$validator = Validator::make(
        [
            'file'      => $file,
            'extension' => strtolower($file->getMimeType()),
        ],
        [
            'file'      => 'required|in:csv',
        ]
    );

验证程序无法提供带有消息The file must be a file of type: csv.

的有效csv文件

如果删除in:csv,验证器会通过。

我做错了吗?

PS - $file可用且标准上传文件类型为object(Symfony\Component\HttpFoundation\File\UploadedFile)

3 个答案:

答案 0 :(得分:8)

尝试更改

$validator = Validator::make(
    [
        'file'      => $file,
        'extension' => strtolower($file->getMimeType()),
    ],
    [
        'file'      => 'required|in:csv',
    ]
);

$validator = Validator::make(
    [
        'file'      => $file,
        'extension' => strtolower($file->getClientOriginalExtension()),
    ],
    [
        'file'          => 'required',
        'extension'      => 'required|in:csv',
    ]
);

答案 1 :(得分:2)

如果您要上传CSV文件,则应允许以下mime类型:

'application/vnd.ms-excel','text/plain','text/csv','text/tsv'

同样在Laravel 5:

$rules =  [
    'file'          => 'required',
    'extension'      => 'required|mimes:csv'
];

来自文档:(http://laravel.com/docs/5.0/validation

  

Validator类提供了几个验证文件的规则,例如   如尺寸 mimes 等。验证文件时,您可以直接通过   将它们与您的其他数据一起放入验证器。

答案 2 :(得分:-1)

{{1}}