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

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

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

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

相关推荐

网络上xp是什么梗(xp是什么意思网络)

x是喜欢的意思,p是偏好的意思,原神xp党指的是一直在使用XP系统玩原神,不愿意更新系统的人。

电脑如何升级到win7

Windows7升级到Windows10系统需要使用官方的升级功能完成,以下是具体的操作方法:?1、在微软Windows10网站下载系统版本工具,完成右键以管理员身份打开【MediaCreationT...

手机下载pe启动盘(手机pe启动盘制作工具)

使用手机制作电脑PE启动盘需要以下步骤:1.手机需要支持OTG功能,并插入U盘。2.下载并安装一个名为“Rufus”的应用程序,它可以将U盘制作成可引导的PE启动盘。3.打开Rufus应用程序,...

2025年路由器推荐(2021年值得买的路由器)

水星AX18G这个无线速率是1800Mbps也属于“阉割”版的,跟标准的WiFi6还有一定差距。不过价格便宜,也可以作为WiFi6的尝试产品家里有宽带的话,买个无线路由器,约100元左右就行。每月交宽...

磁盘分区形式(磁盘分区形式MBR与GPT怎么转换)

怎么进行磁盘分区,可以参考以下步骤:步骤1.在“此电脑”上右键点击,选择“管理”,然后在“计算机管理”窗口的左侧列表中选择“磁盘管理”。在Windows10中也可以右键点击开始菜单,直接选择“磁盘...

固态硬盘使用寿命(固态硬盘使用寿命多久)

2012年9月买的联想U410超极本,到目前五年多,使用6300小时左右,电池损耗率只有15%+,固态硬盘升级120GB+原装的500GB机械硬盘,内存升级到16GB(上限了),加上Primocach...

general(general是什么意思)

GENERAL的意思是:1、adj.一般的,普通的;综合的;大体的2、n.一般;将军,上将;常规短语:1、generaldesign总体设计2、generalhospital总医院;综合医...

手机处理器排名最新图(手机处理器排行榜全部)

众所周知,手机端SOC很少在插电模式下运行,因此能耗比在移动端CPU性能中特别重要。本文整理了主流的SOC能耗比情况,给大家购买手机做一个参考。SOC能耗比较高的,包括麒麟810,骁龙625,麒麟65...

pdf版本怎么弄(怎么把word转为pdf)

回答如下:要将PDF文件恢复到以前的版本,您需要执行以下步骤:1.找到保存PDF文件的文件夹或位置。2.在该位置中找到以前的版本,这可能是备份文件、自动保存文件或之前保存的版本。3.如果您没有备...

怎么几个电脑共用一台打印机
  • 怎么几个电脑共用一台打印机
  • 怎么几个电脑共用一台打印机
  • 怎么几个电脑共用一台打印机
  • 怎么几个电脑共用一台打印机
笔记本电脑本地连接连不上(笔记本本地连接不上什么原因)
  • 笔记本电脑本地连接连不上(笔记本本地连接不上什么原因)
  • 笔记本电脑本地连接连不上(笔记本本地连接不上什么原因)
  • 笔记本电脑本地连接连不上(笔记本本地连接不上什么原因)
  • 笔记本电脑本地连接连不上(笔记本本地连接不上什么原因)
万能bt搜索引擎网站(bt万能搜索破解版)

最好用最全面的的磁力搜索引擎是磁力熊,因为它是一个内容丰富、还是功能最为强大的一个磁力搜索网站,通过它不仅仅可以搜索磁力熊磁力熊,是一个内容丰富、功能最为强大的一个磁力搜索网站,通过它不仅仅可以搜索...

苹果id注册官网登录(appleid官网注册账号)

浏览器访问申请AppleID官网注册  1、在浏览器地址栏上面输入:“https://appleid.apple.com/cn”,进入申请AppleID官网界面,点击下面的“创建AppleID...

苹果笔记本怎么下载windows系统

方法一:使用BootCamp方法二:使用虚拟机方法三:使用Wine简介BootCamp是苹果电脑自带的一个软件,可以帮助用户在Mac上安装Windows操作系统。虚拟机则是运行在Mac上的一个软件...

华硕电脑激活码(华硕电脑windows激活码在哪里)

你所说的应该是系统激活密钥吧华硕OEM密钥就行!HomePremium(家庭高级版):27GBM-Y4QQC-JKHXW-D9W83-FJQKDUltimate(旗舰版):6K2KY-BF...