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

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

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

作为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 图像大小。相同的方法可用于任何不适合内置规则的验证逻辑。

相关推荐

手机如何切换成ie浏览器(手机浏览器怎么切换成电脑浏览器)
手机如何切换成ie浏览器(手机浏览器怎么切换成电脑浏览器)

手机(安卓系统、IOS系统)不支持IE浏览器的。IE浏览器属于Trident内核,而且IE版权归微软所有,所以手机不能使用IE浏览器。1、进入手机浏览器,选择三字形的按钮。2、选择设置。3、在这里设置这里选择浏览器标识。4、然后点击电脑。5...

2026-01-21 08:21 liuian

哪个牌子的u盘好用耐用(什么牌子的u盘最好最耐用知乎)

雷克沙u盘质量最好最耐用品牌,雷克沙U盘,外观比较精致,小巧方便携带,和市面上常见的小型挂钥匙的U盘放在一起比较一下,大小完全一样,做工优良,外壳采用锌合金材质,读写速度也很快,USB3.1读写等级,...

怎么打开文件夹的隐藏文件(怎么打开文件夹的隐藏文件图标)
怎么打开文件夹的隐藏文件(怎么打开文件夹的隐藏文件图标)

步骤/方式1以Windows7为例,首先在我的电脑中选择需要显示隐藏文件的文件夹,点击工具选项卡,如下图所示。步骤/方式2点击工具选项卡下的文件夹选项,进入文件夹选项对话框,如下图所示。步骤/方式3在隐藏文件和文件夹选项中,勾选显示隐藏的文...

2026-01-21 07:55 liuian

计算器下载安装到手机桌面上

在手机桌面上安装计算器应该有几种方法,我以Android手机为例来说明:1.从应用商店下载安装:打开GooglePlay商店或其他应用市场,搜索计算器应用,下载并安装即可。安装完成后,可以在应用...

桌面壁纸图片2025最火爆(女人最旺财的手机壁纸)

动态壁纸2022最火可以设置声音,具体步骤如下:1.打开设置应用程序,然后选择“声音和通知”。2.在“声音和通知”选项卡中,选择“声音”。3.在“声音”选项卡中,你可以选择想要在动态壁纸上播放的...

怎么查看路由器登录密码(怎么查看路由器密码在哪里)

1首先,我们需要找到路由器,然后查看路由器的登录地址,一般在路由器的底部铭牌上会便有该路由器的参数,包括登录地址。此处我以腾达无限路由器为例,上面标识的IP地址就是该路由器的登录地址。2找到路由器的登...

电脑无法启动windows7一键还原

恢复出厂设置方法如下:1、开机进入系统前,按F8,进入Windows7的高级启动选项,选择“修复计算机”。2、选择键盘输入方法。3、如果有管理员密码,需要输入;如果没有设置密码,直接“确定”即可。4...

流氓杀毒软件排行榜(流氓杀毒软件排行榜前十名)
流氓杀毒软件排行榜(流氓杀毒软件排行榜前十名)

360杀毒不是流氓软件。360很不错的,它的软件实用性强,而且还是永久免费的,很多人都喜欢用。第一,它是永久免费的。第二,免费不是做样子看的,它会不断地更新。第三,跟其他杀毒软件相比,360杀毒占用系统资源很少,全盘扫描也基本不占用资源。...

2026-01-21 06:37 liuian

苹果手机怎样更新最新系统(苹果手机如何更新最新版)

打开iphone手机的设置,设置里选择通用,进入软件更新,点击更新到最新系统,等新系统下载完成后,直接安装升级就可以了。iphone更新系统需要进入系统通用设置,在软件更新中就可以下载系统安装包并更新...

win7激活软件暴风激活工具(暴风激活工具激活不了win7系统怎么办)

用小马激活的,没用过暴风激活,一般常用的激活工具有:win7小马激活工具、Win7activation、windowsLoader、OEM等,根据情况的不同需要使用不同的激活软件,一般都需要多试几...

qq普通下载(手机qq普通下载)
  • qq普通下载(手机qq普通下载)
  • qq普通下载(手机qq普通下载)
  • qq普通下载(手机qq普通下载)
  • qq普通下载(手机qq普通下载)
windows10政府版(windows10政府版取消屏保)

按下Windows+R,输入“gpedit.msc”回车,在本地组策略编辑器中依次点击:计算机配置-Windows设置-安全设置-本地策略-安全选项,在右侧找到“交互式登录:无需按Ctrl+Alt+D...

win10无法识别usb设备如何解决
win10无法识别usb设备如何解决

若windows10操作系统中无法识别U盘,可尝试通过以下两种方式进行操作:方法一:打开控制面板(小图标查看)---设备管理器,展开通用串行总线控制器,右键单击设备选择“卸载”,每个设备重复以上操作。完成后,重新启动计算机,系统会自动安装...

2026-01-21 05:21 liuian

斐讯健康体脂秤app下载(斐讯健康体脂秤app下载官网)

斐讯健康app。斐讯健康是一款配合斐讯智能硬件设备使用的APP,可连接斐讯智能体脂秤S7和斐讯智能血压计,体脂秤不仅仅只是称重,更有各项「身体成分」和「健康评估」,血压计不仅仅测量血压和心率,还展示具...

粘贴复制快捷键突然不能用了

回答如下:可能是以下几种原因导致快捷键无法使用:1.键盘故障:检查键盘是否正常工作,尝试使用其他键盘或在另一台计算机上测试该键盘。2.操作系统问题:尝试重新启动计算机,或者更新操作系统以修复问题。...