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

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

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

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

相关推荐

笔记本的处理器排名(笔记本电脑处理器排名)

1.英特尔酷睿i5-8600K@3.60GHz平均评分:12793单线程评级:2514插槽:FCLGA1151速度:3.6GHz最高速度:4.3GHz内核数量:6典型TDP:9...

pdf打印机虚拟打印机下载(pdf虚拟打印机安装程序)
pdf打印机虚拟打印机下载(pdf虚拟打印机安装程序)

pdf虚拟打印机在当下的作用还是蛮重要的,比如说pdfFactory这款吧,它是一个无须Acrobat创建AdobePDF文件的打印机驱动程序,它提供的创建PDF文件的方法比其他方法更方便和高效,它可以把单页或两页的东西直接打印为PDF文...

2026-01-18 09:55 liuian

怎么把word最后一页空白页删除
  • 怎么把word最后一页空白页删除
  • 怎么把word最后一页空白页删除
  • 怎么把word最后一页空白页删除
  • 怎么把word最后一页空白页删除
深度windows xp(深度windows官网)

是开机之后有2个选择吧第一个是WINDOWSXP下面是深度一键还原吧如果你系统出问题进不去,你可以移动光标进入一键还原深度改过的操作系统,会在你硬盘里面保存一个XP.GHOST之类的备份文件的...

备份怎么恢复(视频被删除了没有备份怎么恢复)

1、打开电脑依次选择“开始”“管理工具”-“WindowsSererB。弹出的窗口中有连个选项,选择“在其他位置存储备份”然后单击“下一步”按钮。在选择“本地驱动器”单击“下一步”按钮。2、在选择...

office产品密钥2016专业增强版

office2016专业增强版更改激活密钥步骤如下:(演示使用WIN10系统,其他Windows版本操作大致相同)1丶打开你的word2016,点击左上角的文件。2丶之后单击左侧账户选项卡,点击右侧箭...

无线路由器登陆地址(无线路由器登录地址)
  • 无线路由器登陆地址(无线路由器登录地址)
  • 无线路由器登陆地址(无线路由器登录地址)
  • 无线路由器登陆地址(无线路由器登录地址)
  • 无线路由器登陆地址(无线路由器登录地址)
斐讯k2是千兆路由器吗(斐讯路由器k2是千兆还是百兆)

因为接口不支持。如果是千兆路由,需要进去设置下最大速度,一般是设置为10M,100,1000M自适应。排除电脑网卡不支持100m以上网络的可能。所以千兆路由器,其实可以分为WAN和LAN口全千兆路由器...

windows7企业版和旗舰版区别

Win7企业版(Enterprise)主要对象是企业用户以及其市场,通过大量授权给有与微软签订软件授权合约的公司,同时有一个大量授权的产品密钥,必须通过其激活。这个版本不会通过零售以及OEM贩卖。...

直播笔记本电脑推荐(虚拟直播笔记本电脑推荐)

联想拯救者r720能直播。它的配置一般都足够强悍,可以进行直播的,一般直播来说都需要用到i7的处理器和8G运存。如果你需要直播游戏的话,那么需要用960m以上的显卡,如果你只是普通的聊天直播的话,那么...

win10恢复密钥字母打不上去(win10恢复密钥无法输入英文)

恢复密钥之所以无法输入字母表现为系统闪退,原因和解决方法如下10、系统存储空间严重不足部分应用需要不停的读写数据从而占用系统存储空间,当系统空间严重不足可能会出现卡顿、闪退甚至是死机的现象。解决方法恢...

xp怎么重装系统win10(xp怎么重新装系统)

将WindowsXP系统升级到Windows10系统需要进行全新安装,而不是直接升级。以下是在XP系统中全新安装Windows10系统的步骤:1.了解硬件要求:确定您的计算机是否符合Windo...

台式电脑如何连接无线(台式计算机如何连接wifi)
台式电脑如何连接无线(台式计算机如何连接wifi)

桌面右下角点击一个无线网络的小图标。点开无线网络图标,就能看到附近的wifi网路,找到自己家,或者知道wifi密码的网络。选中自动连接,然后点击“连接”按钮。然后输入wifi密码,点击“下一步”。连接成功之后,无线网列表上面就会提示“已连接...

2026-01-18 07:05 liuian

文件iso怎么解压(如何解压iso文件到u盘)

  可以用WINRAR来解压WIN7镜像文件。  1、现在的WINRAR版本是支持ISO文件的,可在选项菜单中选择设置,在“综合”选项卡中选中ISO文件类型,并确定。  2、这时ISO文件的图标将变成...

手机剪贴板在哪里打开(手机剪贴板在什么地方打开)
手机剪贴板在哪里打开(手机剪贴板在什么地方打开)

1.以小米10,系统MIUI12.0,自带搜狗输入法为例。进入打字界面,呼出键盘2.点击左上角3.点击剪贴板4.剪贴板内容已展示,最多150条。...

2026-01-18 06:37 liuian