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

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

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

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

相关推荐

手机cpu天梯图排名(手机cpu天梯排名最新)

第一名:苹果:A151、A15Bionic采用4颗效率核心+2颗性能核心的组合,搭配4核心GPU,集成85亿个晶体管,性能提升了大约20%。2、苹果称其为“智能手机中最快的CPU”,有着“智能手机...

nrg文件用什么打开(ndr文件如何打开)

因为所有主流播放器都不支持啊。你的这个电影是映像文件。nrg是nero的映像文件,一些常见的映像文件还有iso,ccd,mdf格式等。你可以用nero的虚拟光驱打开,其实没有那样麻烦。你用alcoho...

华硕笔记本咋样(华硕笔记本咋样好用吗)

单纯说华硕电脑,质量还可以,i7的也是高端版本,正常用问题不大,但是直说处理器,没说别的或者具体型号就不好判断,有的系列表现就不太好,同样的配置,可能各个牌子价格不一样,需要比较英特尔酷睿i5处理器是...

电脑上被删除的文件如何恢复

我们有时候会误删电脑上的文件这个时候我们可以通过Ctrl+z撤回删除。好可以在回收站找回找到文件之后点击鼠标右键,还原即可。最后一个方法就是通过专业的软件来恢复文件夹在普通删除过后,会出现在回收站当中...

xp取消开机密码(xp 取消开机密码)

1、xp电脑进行取消开机密码事后,首先需要点击开始按钮,然后我们可以进入控制面板,选择控制面板的选项。2、之后可以在控制面板的界面上找到用户账户,点击进入即可。3、再然后我们需要再次选择点击更改密码,...

关闭开机密码(关闭开机密码后怎么还要输入)

1、打开手机客户端,找到自己的设置功能并打开。2、在设置界面,我们稍向下滑动一点,就会看到“锁屏与密码”。3、在锁屏和密码界面的中间位置会看到“屏幕密码”,下边还有灰色字体的“数字”,因为我的开机密码...

wi7和wi10哪个系统好(wi7和wi10哪个好用)

官方给出的Win10最低配置与Win7的完全一致,也就是说现在能安装Win7的PC也就能安装最新的win10,只是在实际测试中,win10比win7的内存占用量有所增加。所以win7理论上来说发热应该...

自己买无线路由器怎么用(自己购买路由器自己在家怎么设置)

在原地站着别的,还能捡到主机和显示器,最好再等一个电源插板和电脑桌椅。开个玩笑。无线路由器需要电源,就是适配器。你得去电脑城配一个电源。然后按住复位键,或是一个小孔孔。长按5秒以上。恢复出厂设置。然后...

系统下载到u盘可以直接装系统吗

可以。因为下载到U盘里的系统是可启动的,可以直接插入需要安装系统的电脑中启动安装程序,进行系统的安装。但是需要注意的是,不同类型的系统(如Windows和MacOS)需要不同的方法进行安装,而且在安...

笔记本电脑开机键没反应怎么办

电源线有问题按动POWER键后无任何反映故障现象:开机后屏幕没有任何显示,没有听到主板喇叭的“滴”声。故障分析:主板COMS芯片内部BIOS数据被CIH病毒或静电等问题损坏损坏,无法读取,系统启...

免费云服务器永久(免费的云服务器哪家好)

目前市面上有很多免费永久网盘,以下是一些比较受欢迎的:1.百度网盘:百度网盘是国内最大的云存储服务之一,提供了2T的免费空间。用户可以通过PC客户端、手机APP或者Web端进行文件上传和下载,并且支...

联想官网售后查询(联想售后服务进度查询)

用过联想的thinkpad,即俗称的“小黑”。实话实说,其售后服务还是不错的:定点机构很容易联系(虽然好像不上门服务),工作人员态度好,专业素质高,有一次维修还免费给做了外部擦洗。挑毛病的话,最突出...

zip解压缩(zip解压缩为啥还收费)

01将准备压缩的文件,全部收纳到一个文件夹内。02在该文件夹下,点击右键选择新建ZIP压缩文件按钮。03点击新建ZIP文件后,在当前文件夹下创建了一个空的ZIP文件。04我们双击打开这个ZIP文件,在...

路由器显示不可上网该如何解决

路由器不能上网的话,那么就需要检查一下了,是路由器坏了,还是说你家的路由器跟你家的光猫不兼容,所以说你也可以打电话给宽带公司,让他们安排专业的人员上门来检测,如果实在是呃无线路由器坏了,那么你就需要上...

win7开机密码忘了怎么进入(win7开机密码忘记了怎么办)
  • win7开机密码忘了怎么进入(win7开机密码忘记了怎么办)
  • win7开机密码忘了怎么进入(win7开机密码忘记了怎么办)
  • win7开机密码忘了怎么进入(win7开机密码忘记了怎么办)
  • win7开机密码忘了怎么进入(win7开机密码忘记了怎么办)