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

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

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

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

相关推荐

台式电脑怎么组装视频教程(台式电脑怎么插所有线)
  • 台式电脑怎么组装视频教程(台式电脑怎么插所有线)
  • 台式电脑怎么组装视频教程(台式电脑怎么插所有线)
  • 台式电脑怎么组装视频教程(台式电脑怎么插所有线)
  • 台式电脑怎么组装视频教程(台式电脑怎么插所有线)
win7系统优化的方法(win7系统如何优化性能最佳)
  • win7系统优化的方法(win7系统如何优化性能最佳)
  • win7系统优化的方法(win7系统如何优化性能最佳)
  • win7系统优化的方法(win7系统如何优化性能最佳)
  • win7系统优化的方法(win7系统如何优化性能最佳)
win10桌面壁纸无法更换(win10电脑桌面壁纸换不了怎么回事)

1、打开开始菜单的“运行”,输入“gpedit.msc”;2、在“本地组策略编辑器”中,依次展开“计算机配置\管理模式\控制面板\个性化”;3、在右侧找到“阻止更改锁屏界面图像和登录图像”,点击该设置...

笔记本屏幕不亮(笔记本屏幕不亮了但主机正在运行)

1、检查显示器未通电或没开启。不少网友也会碰到这个不是错误的小错误。特别是那种大头显示器,不好区分自己是否按过显示器的开关。  2、一般显示器上都会有一个通电指示灯,大家可以在显示器上找一下看一下这个...

怎么制作镜像文件(镜像文件制作简易教程)

镜像文件是通过软件工具或操作系统内置功能生成的,在制作镜像文件时,首先需要选择源文件或目标磁盘,并使用特定的工具或命令将其复制到新的磁盘或文件中。在复制过程中,需要确保将源文件的所有数据、元数据和文件...

电脑的网卡驱动在哪里(电脑的网卡驱动在哪个文件夹)

网卡驱动电源位置应该位于主板上,和网卡连接的插槽附近我们知道,网卡驱动需要借助电源供电通常情况下,主板上有自己的电源接口,网卡插槽则与电源接口相连,以此来实现电源供应因此,网卡驱动电源位置应该位于主板...

开机突然从13秒变成四十多秒

如果电脑开机时间从9秒变成20秒,可能是因为以下原因造成的1、电脑中毒导致开机速度慢,使用起来感觉电脑很卡,因为病毒或木马程序会劫持大量系统加载点,影响系统正常文件。很多流氓插件也会导致系统运行缓慢;...

深度linux系统好用吗(深度linux操作系统)

要将深度deepin系统换回windows,需要进行以下步骤:1.备份重要数据:在更改操作系统之前,需要备份重要数据,以免数据丢失。2.获取Windows安装介质:需要获取Windows安装介质,可以...

u盘排行榜前十名品牌(u盘排名前十的品牌)

pe系统u盘的十大排行1、闪迪(SanDisk)U盘推荐理由:标准容量,存储空间大,家用办公都适合闪迪(SanDisk)128GBUSB3.0U盘CZ73酷铄SanDisk(闪迪)公司是全球...

一键恢复qq空间十年照片(怎么找回qq空间十年前删除的照片)
  • 一键恢复qq空间十年照片(怎么找回qq空间十年前删除的照片)
  • 一键恢复qq空间十年照片(怎么找回qq空间十年前删除的照片)
  • 一键恢复qq空间十年照片(怎么找回qq空间十年前删除的照片)
  • 一键恢复qq空间十年照片(怎么找回qq空间十年前删除的照片)
u盘坏了怎么简单的维修(u盘坏了 怎么修)

一般是可以修的:具体如下U盘损坏的问题可能是1,U盘接口虚焊,这样的话去修一下就好了,几块钱就搞定(插U盘无反应或者摇动U盘偶尔有反应)。2,你U盘的晶振坏了,这样的话换一个就好了,可以修的,也不贵(...

联想笔记本老款有哪些(联想笔记本老款有哪些系列)

这个是联想c116型号,都是能够让这个联想笔记本有二纳米的工艺,同时能够让它有12GB的运行内存和512GB的机械硬盘,运行起来还是很不错的。1992年10月5日,IBM正式发布三款ThinkPa...

怎么更新n卡驱动(怎么更新n卡驱动器)

若您使用的是NVIDIA显卡,以下是更新显卡驱动的一般步骤:1.打开"NVIDIA控制面板"。您可以通过右键点击桌面空白处,选择"NVIDIA控制面板"来打开。2....

电脑版ie浏览器下载win10(ie10浏览器怎么下载安装到电脑)

安装IE10浏览器需要满足以下要求:1.操作系统需要为Windows7及以上版本。2.已经卸载之前的IE版本(如IE9等)。3.计算机已经安装了SP1(ServicePack1)补丁。如果你的电...

系统管理权限在哪里(系统的权限管理)
  • 系统管理权限在哪里(系统的权限管理)
  • 系统管理权限在哪里(系统的权限管理)
  • 系统管理权限在哪里(系统的权限管理)
  • 系统管理权限在哪里(系统的权限管理)