百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

在 Laravel 中按大小验证 Base64 图像:操作指南

liuian 2025-03-14 18:46 72 浏览

作为Laravel开发人员,我们经常需要验证上传的图像,以确保它们满足一定的尺寸要求。开箱即用,Laravel的验证规则只适用于数值,不适用于base64编码的图像。max

在这篇文章中,我们将逐步扩展 Laravel 的验证以处理自定义 base64 图像大小验证。通过编写自定义验证规则,我们可以在应用中需要上传图像的任何位置重复使用此逻辑。

自定义验证规则

所有自定义验证规则都是通过扩展 in 方法注册的。首先,我们将使用 Laravel 的方法定义逻辑:
ValidatorbootAppServiceProviderValidator::extend

Validator::extend('base64_image_size', function ($attribute, $value, $parameters, $validator) {

  // Decode the image
  $decodedImage = base64_decode($value);

  // Get image size in kilobytes 
  $imageSize = strlen($decodedImage) / 1024;

  // Check if image is below max size
  return $imageSize <= $parameters[0]; 

});

在这里,我们正在解码 base64 编码的图像,以获得其二进制大小(以字节为单位)。然后我们转换为千字节以与参数中定义的最大大小进行比较。如果图像低于最大大小,则验证通过。

自定义错误消息

接下来,我们将使用以下方法自定义错误消息:Validator::replacer

Validator::replacer('base64_image_size', function ($message, $attribute, $rule, $parameters) {
  return str_replace([':attribute', ':max'], [$attribute, $parameters[0]], $message);
});

这将替换为字段名称和定义的最大大小。消息本身在语言文件中定义:
:attribute:maxresources/lang/xx/validation.php

'base64_image_size' => 'The :attribute must not be larger than :max KB.',

用法

最后,我们可以在验证期间使用此自定义规则:

$validator = Validator::make($request->all(), [
  'image' => 'required|base64_image_size:500',
]);

if ($validator->fails()) {
  // Image too large
} 

通过扩展 Laravel 的验证功能,我们构建了一种可重用的方式来验证整个应用程序中的 base64 图像大小。相同的方法可用于任何不适合内置规则的验证逻辑。

相关推荐

微软office官网下载中心(微软官方office下载)

07版本大概950M左右,1M=1024kb,自己算吧MicrosoftOffice是一个集办公软件于一体的应用软件套装,由微软公司推出,它包括Word、Excel、PowerPoint、Acces...

惠普售后电话怎么转人工(惠普售后人工电话是多少)

没有,可以找本地的售后中心那样就可以了2年部件说明是部分硬件是2年保修(比如电池他会说明只保修1年)还有一般是2年送修,要你送到维修中心的oppo手机可通过以下步骤连接打印机使用:1、oppo手机...

老版微信2019下载安装(微信7.6.5版本(可登录))
  • 老版微信2019下载安装(微信7.6.5版本(可登录))
  • 老版微信2019下载安装(微信7.6.5版本(可登录))
  • 老版微信2019下载安装(微信7.6.5版本(可登录))
  • 老版微信2019下载安装(微信7.6.5版本(可登录))
最好用一件ghost工具(一键ghost工具箱)
  • 最好用一件ghost工具(一键ghost工具箱)
  • 最好用一件ghost工具(一键ghost工具箱)
  • 最好用一件ghost工具(一键ghost工具箱)
  • 最好用一件ghost工具(一键ghost工具箱)
华为云呼叫中心(华为 呼叫中心)

华为呼叫中心(CustomerServiceCenter)主要负责处理客户咨询、投诉、售后服务等方面的问题。它为客户提供电话、邮件、在线聊天等多种沟通方式,帮助客户解决使用华为产品或服务过程中遇到...

u盘芯片精灵官方下载(u盘芯片精灵安卓手机版)

下载驱动精灵到U盘步骤如下:1.首先,您需要先准备一个U盘,并将其插入电脑上。注意,将U盘插入电脑时,应该确保电脑识别到了U盘设备,否则您可能需要检查一下您的U盘是否存在问题或者更换一个U盘。2....

游戏显卡推荐(笔记本电脑显卡性能排行榜)

2017年的时候,绝地求生这款fps游戏横空出世,不到半年的时间积累啦几百万的用户,我们国内的很多网吧也是因为这款游戏更新啦一波配件,这款游戏可以算是一款比较吃显卡的大作啦,我们可以看到绝地求生的官方...

注册免费邮箱163(注册免费邮箱英文)
注册免费邮箱163(注册免费邮箱英文)

1、在163免费邮首页点击“注册”,进入通行证注册页面;2、按页面提示可选择注册字母邮箱,或手机号码邮箱。填写“邮件地址”(填写您心仪的用户名,由字母、数字、下划线组成)、“密码”(设定您的邮箱密码)、手机号码(可用于修复密码)等注册...

2026-01-22 03:55 liuian

用手机怎么更改路由器密码(用手机怎么更改路由器密码设置)
用手机怎么更改路由器密码(用手机怎么更改路由器密码设置)

1、手机首先需要先连接上路由器的无线信号,成功连接后,打开手机的浏览器,然后输入路由器的管理ip,然后输入路由器的管理密码登录上路由器的后台。2、成功登录后台后,选择无线设置,然后选择无线安全设置,就可以更改无线密码了,现在手机桌面点击【浏...

2026-01-22 03:37 liuian

电脑怎样自动关机设置(电脑如何自动关机设置)

工具/材料:电脑1.按住快捷键“Win+R”打开“运行”窗口。2.在运行命令框中输入“at18:00Shutdown-s”,回车或者点击“确定”。3.这样,到了18点电脑就会出现“系统关机...

nba篮网最新消息(nba篮网最新信息)

当然是东部球队了布鲁克林篮网队,是一支属于美国的纽约州纽约市布鲁克林区为基地的男子职业篮球队,属于美国国家篮球协会(NBA),于1967年组队并在1976年加入NBA联盟,是美国男篮职业联赛东部联盟大...

风林火山一键重装系统(风林火山ghost win7旗舰版)

军棋直播突然没了,有很多种原因,有的可能是因为主播身体的原因,或者主播自身的原因,导致停播几天也是很正常的,也可能是因为平台的原因,如果直播平台收到各种反面的投诉,可能也会限制直播,直播人长期点击率低...

驱动精灵万能网卡驱动版官网
  • 驱动精灵万能网卡驱动版官网
  • 驱动精灵万能网卡驱动版官网
  • 驱动精灵万能网卡驱动版官网
  • 驱动精灵万能网卡驱动版官网
dcm文件用什么软件打开(dcm文件下载)

dcm其实就是一种方便用户进行文件查看的工具,有了这本书工具之后,可以帮助用户打开DCm格式的文件,可以帮助用户调整窗口的宽度,而且还可以另存为一些格式的文件,这种工具的应用范围是比较广的,可以帮助用...

电脑怎么设置私密文件夹(电脑如何设置私密文件夹)

电脑设置隐私空间的方法有很多种,以下是一种常见的方法:要设置电脑的隐私空间,可以使用文件加密软件或者创建密码保护的文件夹。使用文件加密软件可以将敏感的文件或文件夹进行加密,只有输入正确的密码才能解密和...