四个 Laravel 图片验证规则

Laravel

Laravel 验证机制有很多各种各样的规则。让我们选择可以应用于图形文件的。

规则 1. image

可能是最简单的一种:

public function rules()
{
    return [
        'uploaded_photo' => 'image',
    ];
}

最常见的问题可能是 什么是图像

文档说明:验证中的文件必须是图像 (jpeg、png、bmp、gif 或 svg)


规则 2. mimes

如果您觉得上面列出的图像扩展名太多了,您可以将它们限制为特定的 JPG / PNG,例如:

public function rules()
{
    return [
        'photo' => 'mimes:jpeg,png',
    ];
}

即使您只需要指定扩展名,这个规则实际上是通过读取文件的内容并猜测其 MIME 类型来验证文件的 MIME 类型。这就是为什么 jpeg 对于 MIME 类型 image/jpeg 进行验证就足够了,其中还包括 .jpg 扩展名。

在此处了解更多关于 MIME 类型的信息。


规则3.大小

该规则很有趣,因为它适用于字符串和文件字段。如果是字符串,则以字符为单位验证长度,但是如果是上传的文件,则以文件大小(以千字节为单位)进行验证。

public function rules()
{
    return [
        'photo' => 'image|size:1024', // 1 MB
    ];
}

规则4.尺寸

还有更具体的验证,您可以限制图像的最小/最大宽度/高度。

public function rules()
{
    return [
        'photo' => 'dimensions:min_width=100,min_height=100,max_width=1000,max_height=1000', 
    ];
}

不仅如此,您还可以指定一个比率,例如 3/2,它将覆盖 600×400 和 300×200等:

public function rules()
{
    return [
        'photo' => 'dimensions:ratio=3/2', 
    ];
}

最后,你甚至可以结合使用 width + height + ratio,这会稍微复杂一些:

use Illuminate.alidation.ule;

Validator::make($data, [
    'avatar' => [
        'required',
        Rule::dimensions()->maxWidth(1000)->ratio(3/2),
    ],
]);

因此,这是四个易于应用的规则。在[官方文档]中可以找到更多验证规则 in the official documentation.

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://laraveldaily.com/four-laravel-va...

译文地址:https://learnku.com/laravel/t/38955

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 1

规则 3. 大小 size:1024 返回提示 The image must be 1024 kilobytes. 必须等于1024kb..... 我想问一下小于怎么写。

3年前 评论
lovey-wyg 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!