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

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

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

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

相关推荐

win10应用商店在哪儿(window10应用商店在哪儿)

答:有几种可能原因会导致Windows10没有应用商店:1.Windows10版本太旧。应用商店是从Windows10版本1511(或更高版本)开始引入的。如果您的Windows10版本比这...

微软官网浏览器(微软游览器网址)

电脑自带的微软IE浏览器所在的文件夹是“C:\ProgramFiles\internetexplorer”。1、同时按住键盘上的“Win”键+“R”键打开运行窗口,然后在运行窗口中输入“C:\Pr...

360市场下载(360市场应用市场)

对于普通用户,很安全,非常安全。理由很简单,也有点不好听,就是你的数据对于360来说并没有大意义。对于2008年以后的电脑,如今这个庞大的360帝国.exe无敌软件集成包是又安全又好用,用户体验无限好...

电讯云电脑(电讯云电脑网页版)

要解决电讯云网咖的异地登录问题,可以采取以下措施:首先,引入双因素身份验证,要求用户在登录时输入密码和接收到的验证码,以确保只有合法用户能够登录。其次,建立IP白名单,限制只有特定IP地址才能登录,防...

photoshop官方免费版安卓(photoshop免费版本下载)

安卓手机进入Photoshop(PS)应用程序的方法如下:1.打开安卓手机上的应用商店(如GooglePlay、华为应用市场等)。2.在搜索栏中输入“Photoshop”或“PS”,然后点击搜索...

该设备无法启动代码10(该设备无法启动代码10蓝牙)

网卡设备无法启动代码10的原因:可能是设置错误造成的。解决方法:1、回到桌面,右键单击这台电脑--属性。2、电脑属性面板点击设备管理器。3、设备管理器展开网络适配器。4、进入网络适配器,找到你的无线网...

u盘exfat改不了fat32(U盘exFAT改不了NTFS)

右键点我的电脑→设备管理器→磁盘管理→删除U盘分区→新建U盘分区并按照提示格式化→至此,你的U盘应该成为FAT32分区格式。可以的,买个读卡器,把内存卡插到电脑上,然后重新格式化,选择以fat32格式...

烟雾头怎么调最清楚win7专业版
  • 烟雾头怎么调最清楚win7专业版
  • 烟雾头怎么调最清楚win7专业版
  • 烟雾头怎么调最清楚win7专业版
  • 烟雾头怎么调最清楚win7专业版
安装win10黑屏要等多久(安装win10黑屏要等多久才能恢复)

方法/步骤1/4方法一:找到菜单按钮,找到搜索,搜索控制面板,点击硬件和声音,点击更改电源按钮的功能,点击更改当前不可用的设置。2/4在关机设置中,清除勾选启用快速启动,点击保存更改即可。3/4方法二...

北京科兴最新官方消息(北京科兴最新情况)

很好。北京科兴制药有限公司成立于1997年08月22日,注册地位于山东省济南市章丘区明水开发区创业路2666号(生产地一明水开发区创业路2666号,生产地二刁镇化工工业园、圣泉东路以东),法定代表人为...

网络测速在线测网速手机(网络测速在线测网速手机软件)

检测方法:在应用商店搜索【测网速】并下载,打开后点击【开始测试】即可;或者打开手机浏览器,在搜索栏搜索【网络测试器在线测网速】,找到【测速网】,选择【测速】即可测出WiFi网速。首先点击软件安全中心,...

win10找不到无线网络连接(win10找不到无线网络连接界面)

1.首先检查是否关闭了WiFi功能,如果关闭了进行开启,看看WLAN选项有没有出现,如果没有,可以重置网络配置。2.鼠标右键命令提示符,选择以管理员身份运行,输入【netshwinsockrese...

个人电子邮箱格式正确格式(个人电子邮箱的格式是什么样的)

正确格式是:用户名@主机名(域名),如username@xxx.com。这里的域名指的是域名标识符,也就是邮件必须要交付到的邮件目的地的域名。@字符是英文半角的字符。之间都没有空格,默认情况下使用英文...

风林火山mp3下载(风林火山网盘)

主要是资金预算的原因导致不能上映。从市场情况看,《风林火山》的前景并不乐观,主要原因还是在票房上:目前国内电影的片方在整个分账体系中可以分得的账目是总票房的三分之一左右,也就是说,一部国产电影需要3倍...

磁力搜索器bt天堂(磁力搜索大全引擎)

没有磁力搜索只有磁力链接。磁力链接(MagnetURIscheme)是一种特殊链接,它通过不同文件内容的Hash结果生成一个纯文本的“数字指纹”,并用它来识别文件。磁力链接识别准确度高,下载的文件...