在laravel 5.4中获取失败的上传文件的文件名

问题描述:

如何获取失败的上载文件的文件名,并将其传递给验证错误消息.例如:" file.0 必须为1024 KB."就像" failed-file-sample.jpg 必须为1024 KB".

How do i get the filename of failed uploaded file and pass it on validation error message. Ex: "The file.0 must be 1024 kilobytes." be like "The failed-file-sample.jpg must be 1024 kilobytes."

这是示例代码排列:

$messages = [
    'mimes' => 'File(s) must be of type: :values.',
    'size'   => 'The ' .  $request->file('file_field')->getClientOriginalName() . ' must be :size kilobytes.'
];

$this->validate(
    request(), 
    ['file_field' => 'bail|required|mimes:gif,jpg,jpeg,png|size:1024'], 
    $messages
);

非常感谢.

使用:

$validationArray = [];
foreach ($request->file('file_field') as $key => $file) {
    $validationArray['file_field.'.$key.'.size'] => 'The ' .  $file->getClientOriginalName() . ' must be 1024 kilobytes.'; 
}
$messages = [
    'file_field.*.mimes' => 'File(s) must be of type: :values.',
     $validationArray
];
$this->validate(
    $request, 
    [
        'file_field' => 'bail|required|array',
         'file_field.*' => 'mimes:gif,jpg,jpeg,png|size:1024'
    ], 
$messages);