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

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

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

作为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易升无法更新系统(win10易升检测不出最新版本)

首先确保C盘有大于25G的剩余空间,再试试下面的方法:方法一:卸载所有第三方杀毒软件和管理软件后。重启Windows更新服务。方法为打开记事本,复制下列命令,并保存为“xxx.bat”文件...

联想一体机老款式(联想一体机老款式升级)

只要设备没有损坏,都可以继续使用。但是老式电脑的配置可能比较低,比如内存小,只有512Mb,硬盘小于40G,但CPU都是初级产品,所以操作起来并不显得慢。这是因为系统也是可以安装win2000系统,...

win10强制删除流氓软件(win10强制删除流氓文件)

Win10删除流氓软件步骤 1、在桌面找看能不能找到软件的快捷方式如果不能就打开开始菜单中选中要卸载的程序右键点点击属性。 2、弹出对话框,点击打开文件位置就是查找目标。 3、系统会自动找到安装软件的...

迅雷加速器官网(迅雷加速器官网入口)

以下是使用迅雷视频加速器(VIP会员版)的步骤:1.下载并安装迅雷软件,然后登录VIP会员账号。2.打开迅雷软件,选择“工具”-“视频加速器”。3.在弹出的窗口中,找到您要加速的视频文件,将其拖...

爱奇艺老旧版本大全(爱奇艺老版本2017)

播放过程中点右下角设置,就是一个方向盘一样的东西,播放器选择FLASH,解决了。告诉你,那是因为你的爱奇艺会员不仅在你的电脑登录过,还在你的手机也登录过,对不对,我就是,明明就是我一个用,我手机登,电...

win7升级win10工具下载(win7 升级win10工具)

安装win7系统,然后JiHuo,然后用win10镜像进行升级;在win10系统下,如果没有网卡驱动的话,先使用网卡版驱动精灵安装网卡驱动,再使用系统更新更新系统,一般就能解决;如果不能解决...

电脑驱动用什么软件好(电脑驱动app哪个好)

如果是我windows系统,有如下软件可自动匹配和安装驱动:1.驱动精灵http://www.drivergenius.com驱动之家网站十年专业数据积累,驱动支持度达到98%,是最常用的软件2、驱动...

internet选项打不开(internet选项打不开解决方法)

答edge浏览器打不开的设置方法:1、首先打开IE浏览器后,自动跳转到了Edge浏览器。2、下面来阻止它的跳转。打开Edge浏览器,点击右上角的三个圆点,选择“设置”。3、在左边菜单中选择“默认浏览器...

百度网盘下载速度慢(百度网盘下载速度慢为啥)
  • 百度网盘下载速度慢(百度网盘下载速度慢为啥)
  • 百度网盘下载速度慢(百度网盘下载速度慢为啥)
  • 百度网盘下载速度慢(百度网盘下载速度慢为啥)
  • 百度网盘下载速度慢(百度网盘下载速度慢为啥)
mac地址修改有什么影响吗(mac地址更改后会有痕迹吗)

MAC就是个编号,不会引发你所担心的问题。瞎改没什么坏处,但是跟网内的MAC冲突就会出现问题,但是你随便改一个冲突的概率微乎其微,快赶上彗星撞地球了。当然,有时候需要刻意去修改MAC,比如有的运营商为...

电脑dns怎么设置网速快(电脑如何设置dns让网速变快)

要设置DNS来提高网速。DNS(DomainNameSystem)是将域名转换为IP地址的系统,它可以帮助我们在浏览器中输入域名时快速找到对应的服务器。通过设置合适的DNS服务器,可以加快域名解析...

手机清理软件哪个最好用(什么手机清理软件免费又好用)

1、腾讯手机管家腾讯手机管家是腾讯旗下的一款手机安全软件,该软件可以对我们的手机进行安全保护和相关的手机优化和清理。功能包括病毒查杀、骚扰拦截、软件权限管理、手机防盗及安全防护,用户流量监控、空间清理...

autocad序列号和激活码(autocad序列号和密钥2022)

CAD2022序列号:666-69696969,667-98989898.400-45454545,066-66666666。cad2022产品密钥:001M1、001n1激活密钥步骤:1.双击运行软...

window7下载不了itunes(win7装不了itunes)

原因①安装了额外的硬件驱动或软件。②对系统的驱动及服务进行了错误的配置。③显示配置错误。解决方法①Safemode:只加载基本的服务和驱动。②Lastknowngood:启动上一次的成功配置。③...

电脑如何查看隐藏文件夹(如何看电脑隐藏的文件夹)
电脑如何查看隐藏文件夹(如何看电脑隐藏的文件夹)

1.打开电脑,单击鼠标右键,出现菜单后,点击个性化2.进入个性化页面后,点击左侧的控制面板主页3.进入控制面板主页,点击文件夹选项4.进入文件夹选项,点击查看-隐藏文件和文件夹,点击显示隐藏的文件,文件夹和驱动器,点击应用-确定,就可以...

2026-01-19 19:37 liuian