在 Laravel 5.4 中获取上传失败文件的文件名
Posted
技术标签:
【中文标题】在 Laravel 5.4 中获取上传失败文件的文件名【英文标题】:Get filename of failed uploaded file in Laravel 5.4 【发布时间】:2019-01-08 18:27:38 【问题描述】:如何获取上传失败文件的文件名并将其传递给验证错误消息?例如:“file.0 必须为 1024 KB。”就像“failed-file-sample.jpg 必须是 1024 KB。”
这是示例代码安排:
$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
);
【问题讨论】:
只需使用 $request->file_field_name->getClientOriginalName();如果您正在使用验证,只需在验证之前添加这一行 @SalmanZafar - 你的意思是像 $request->file('file_field_name')->getClientOriginalName()?它不工作。抱歉,我是新手 两者都可以。你可以使用其中任何一个。$request->file('file_field_name')->getClientOriginalName();或 $request->file_field_name->getClientOriginalName(); 哦!它适用于单个文件上传。但如果多个文件上传,它会返回 FatalThrowableError... 我还编辑了我的原始帖子以显示位代码 对多张图片使用 foreach 循环 【参考方案1】:用途:
$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);
【讨论】:
这给了我“调用数组上的成员函数 getClientOriginalName()” 我更新了你的答案。现在我的验证正在工作......谢谢!以上是关于在 Laravel 5.4 中获取上传失败文件的文件名的主要内容,如果未能解决你的问题,请参考以下文章