【问题标题】:Laravel validation by extensionLaravel 扩展验证
【发布时间】:2018-01-26 14:30:36
【问题描述】:

需要帮助来验证我的表单输入 我需要用户只能上传扩展名为 .log 的文件

到目前为止,我已经尝试过如下所示的代码,但即使文件是 .log,验证器仍然拒绝输入

提前致谢

$validator = Validator::make($request->all(),
            [
                'email' => 'required|email',
                'file_log' => 'mimes:text/plain,log'
            ],
            [
                'email.email' => 'Please input valid email address',
                'file_log.mimes' => 'Mohon hanya mengunggah file yang berekstensi .log ',
            ]
        );

【问题讨论】:

  • 文件扩展名不是 mime 类型。 'file_log' => 'mimes:text/plain,log'。您应该使用正则表达式验证来验证文件名以 .log 结尾
  • 谢谢先生,你能给我一个基于我的代码的正则表达式实现的例子
  • 谢谢..你的链接给我带来了解决方案

标签: laravel validation logging


【解决方案1】:

请检查:

            'file_log' => 'mimes:text/x-log '

另一种方式

$validator = Validator::make(
  [
     'file'      => $request->file,
     'extension' => strtolower($request->file>getClientOriginalExtension()),
  ],

  [
     'file'          => 'required',
     'extension'      =>'required|in:log',
  ]
);

【讨论】:

  • 我上传了我使用记事本创建的文件 file.log 结果仍然 >>>文件日志必须是一个类型的文件:text/x-log 。
  • 你可以检查文件扩展名是不是.log
  • 检查我编辑的代码,如果需要更改,请编辑
【解决方案2】:

好的,我终于找到了答案 谢谢你的回答

// Create custom validation rule
Validator::extend('logfile', function ($attribute, $value, $parameters, $validator) {
$regexPattern = '/\.log$/';
$filename = $value->getClientOriginalName();
return preg_match($regexPattern, $filename);
});


    $validator = Validator::make($request->all(),
        [
            'email' => 'required|email',
            'file_log' => 'logfile',
        ],
        [
            'email.email' => 'Please input valid email address',
            'file_log.logfile' => 'Please upload only file .log',
        ]
    );

【讨论】:

    猜你喜欢
    • 2019-09-09
    • 1970-01-01
    • 2023-03-04
    • 2018-11-26
    • 1970-01-01
    • 1970-01-01
    • 2021-06-07
    • 2015-07-13
    • 2018-11-13
    相关资源
    最近更新 更多