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

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

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

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

相关推荐

联想服务网站首页官网(联想服务网站首页官网查询)

基本上每个地方都有“联想阳光服务”站点,只要你出示的发票显示没有过保修期,它都会按照保修条款给你保修。但是需要注意,像机器除尘、病毒导致的系统崩溃、外壳损坏这种故障时需要收费的,其它的部件保修无所谓。...

电脑ip怎么设置(电脑ip怎么设置成固定ip)
  • 电脑ip怎么设置(电脑ip怎么设置成固定ip)
  • 电脑ip怎么设置(电脑ip怎么设置成固定ip)
  • 电脑ip怎么设置(电脑ip怎么设置成固定ip)
  • 电脑ip怎么设置(电脑ip怎么设置成固定ip)
一键激活w8免费(一键激活windows)

要激活Windows8,您需要购买合法的Windows8激活密钥或者升级到Windows10。如果您已经购买了激活密钥,可以按照以下步骤进行激活:1.打开「控制面板」。2.在控制面板...

office2013正版(office2013官方正式版)

进入你电脑安装OFFICE2013的目录,把这个目录链接复制下来。点击开始菜单再点击运行或是按WIN+R组合键调出运行工具。再输入CMD进入命令提示符。在命令提示符窗口下输入cd再用鼠标右键粘...

32位win7安装包(windows7下载32位)

32位系统是可以安装在8代酷睿处理器上的,但是鉴于8代酷睿处理器的强大性能,推荐安装64位系统以充分发挥处理器的性能优势。32位系统只能最大支持4GB内存,而8代酷睿处理器支持的内存容量远远超过这个数...

镜像文件gho和iso有啥区别(ghost镜像和iso镜像的区别)

区别如下:1.看大小。一般情况下gho镜像应该大于iso镜像,例如某gho文件大小为4g,而iso文件为3.5g。2.看安装方式。gho镜像是一套已经安装好的操作系统,类似于linux当中的deskt...

win10 iso u盘安装(iso制作win10安装u盘)

两个选择 1做个U盘pe系统然后把下载的系统压缩包复制到U盘。 2用UltraISO(软碟通)直接刻录光盘镜像到U盘。上边两种方法2选1,然后重启,用U盘启动。格式化硬...

u盘不显示如何修复(u盘不显示怎么修复)
  • u盘不显示如何修复(u盘不显示怎么修复)
  • u盘不显示如何修复(u盘不显示怎么修复)
  • u盘不显示如何修复(u盘不显示怎么修复)
  • u盘不显示如何修复(u盘不显示怎么修复)
tplink怎么设置网络最快(tp-link设置网速)

进入路由器点击无线设置→基本设置模式选择11BGNMIXED带宽自动最大发送速率150Mbps选择最大,现在很多路由都是300Mbps打开WDS用来寻找最佳信道扫描,扫描后出现AP列表在这里我们...

win7电脑系统设置在哪里找(win7电脑的设置在哪)

win7怎样打开计算机配置->管理模板->系统?解决方法:1,开始→运行(或者使用Win+R快捷键也能调出运行)2,输入:gpedit.msc点击确定,就能打开组策略3.左边就有计算机配...

u盘安装教程(电视u盘安装教程)

怎么用u盘安装系统?那么下面与大家分享下u盘装系统步骤教程。1、打开装机软件,选择启动U盘界面,并且在电脑上插入U盘,点击制作U盘启动盘开始制作2、接着就进入了选择系统的界面,在这里可以看到有各种版本...

手机中文手写输入法下载安装

中文手写板的使用方法:把手写板的驱动盘放进光驱,一般手写板的驱动盘比较小,放进光驱的时候要使劲卡住光盘才行。把手写板的USB接口连接到电脑,然后准备好说明书,有不懂的可以再看看。驱动盘运转后,打开我的...

visio2007安装包下载(visio2010安装包下载)

是的,Visio2007已经停止支持。Microsoft宣布于2017年1月10日正式终止对Visio2007的支持,并停止向该软件提供更新和安全补丁。如果您仍在使用Visio2007,建议您升...

电脑下划线怎么用键盘打出来
  • 电脑下划线怎么用键盘打出来
  • 电脑下划线怎么用键盘打出来
  • 电脑下划线怎么用键盘打出来
  • 电脑下划线怎么用键盘打出来
老款苹果笔记本装win7(苹果笔记本加装win7)

.获取Windows7安装介质:确保你有一张合法的Windows7安装光盘或USB安装驱动器。你可以购买正版Windows7光盘或从微软官方网站下载镜像文件并制作启动USB。2.创建Window...