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

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

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

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

相关推荐

空间万能查看器天涯2025(空间万能查看器天涯2023)

未中奖“勇闯天涯”是华润雪花主推的一个原创性营销活动,从05年推出至今,已经走过15年春秋。继探索雅鲁藏布大峡谷、探秘长江源、远征国境线,极地探索之后,2009年的“挑战乔戈里峰”是首次由中国人组织的...

微软账号官网(微软账号官网网址)

1使用浏览器,打开微软账号页面。进入页面之后,选择,创建账户。2在弹出的框里选择,同意并继续。3在弹出的框里选择,同意并继续。4这里以电话号码注册形式作为演示。设定登录密码之后,点击下...

电信测速(电信测速器在线测网速)

1、在IE浏览器上打开中国联通网上营业厅,在首页左侧的导航栏里面选择“便民服务”,然后再在展开的窗口上点击“宽带测速”。2、点击底下的那个“同意条款,开始测速”的按钮。3、完成以上步骤后,出现“Int...

硬盘盒怎么安装硬盘(硬盘盒安装硬盘教程)
  • 硬盘盒怎么安装硬盘(硬盘盒安装硬盘教程)
  • 硬盘盒怎么安装硬盘(硬盘盒安装硬盘教程)
  • 硬盘盒怎么安装硬盘(硬盘盒安装硬盘教程)
  • 硬盘盒怎么安装硬盘(硬盘盒安装硬盘教程)
海马助手ios版官网(海马助手ios下载安装)

打开电脑管家等程序后,找到开机加速或者电脑加速,然后找到启动项,在里面一一查找有关于快用的程序,如果禁止了就都打开,保持在已开启的状态。然后再重新打开快用苹果助手试一试。设置--通用--描述文件第二...

自己怎么重装电脑程序(自己怎么重装电脑程序软件)

重装电脑程序的一般步骤如下:1.备份重要数据。在重装程序之前,请先备份重要的数据。这有助于防止在重装过程中出现不可预料的问题。2.确定需要安装的软件。运行一个系统文件检查器(SFC)工具,该工具将检查...

win10清理垃圾在哪(win10系统清理垃圾)

win10自动清理垃圾有用的,方法,1,首先清理无用的垃圾文件和很多临时文件,点开右下角通知然后点击所有设置。2,点击系统,进入系统之后点击存储,然后选择你要清理的磁盘。3,这里能看到该盘下面的所有文...

iso感光度大好还是小好(iso感光度的了解与运用技巧)

相机感光度(又称ISO)高和低是根据环境而定的,没有好与不好的说法。在光线比较暗的情况下把ISO调高的话会降低快门速度也就是说可以让照出的照片不是很模糊但是有得必有失,高的ISO使照片颗粒感很强的,低...

win7专业版忘记开机密码如何进入
  • win7专业版忘记开机密码如何进入
  • win7专业版忘记开机密码如何进入
  • win7专业版忘记开机密码如何进入
  • win7专业版忘记开机密码如何进入
flash中心有必要安装吗(flash一定要安装在c盘吗)

回答:要安装不安装会有问题的,如果不安装,会看不了网站上的视频(比如优酷、土豆、爱奇艺的),没法玩网页游戏,甚至可能会无法启动某些屏幕保护程序。现代的电脑不再需要安装AdobeFlashPlaye...

下列说法正确的是中国特色(下列说法错误的是a中国特色)

特色是一个事物或一种事物显著区别于其他事物的风格和形式,是由事物赖以产生和发展的特定的具体的环境因素所决定的,是其所属事物独有的。出处1.郁达夫《青岛、北平、北戴河的巡游》:“青岛的特色之一,是在她的...

好游快爆app下载安装(好游快爆手机版下载安装)

还算是安全的,好游快爆app专为玩家推荐好玩的爆款游戏、提供前瞻性的手游新闻、报道火热的新游戏,还有游戏实用攻略解析和游戏生动视频解说。好游快爆下载绝对是游戏爱好者自己的app,因为所有游戏均来自玩家...

iso制作器手机版下载(iso制作工具安卓)

苹果手机使用的是iOS系统,apk格式的安卓软件是不能在苹果手机上进行安装的,需要在苹果手机内置的“AppStore”中搜索并安装对应的iOS格式软件。iOS软件的具体的下载安装步骤如下:1、在手机...

系统库的系统干净吗(系统库的系统干净吗安全吗)

可以通过以下步骤清理手机数据让资源库更干净:删除不再使用的应用:卸载不需要的应用可以释放大量的存储空间,并减少后台运行的进程数量,从而提高手机的运行速度。清除应用缓存:应用在使用过程中会产生缓存数...

win10平板电脑推荐(win10平板哪个性价比高)

经常写宏代码发现能正常编辑宏的,只有微软自家的平板SURFACE系列3以上的都不错如果以前是用windows7的话建议用windows10正式版如果是用习惯windows8.1的话建议也升级wi...