antoninmasek/laravel-max-upload-size-rule

添加 Rule::file()->maxUploadSize() 验证规则,该规则将验证文件大小是否与 `upload_max_filesize` php.ini 设置匹配

0.0.3 2024-06-26 09:57 UTC

This package is auto-updated.

Last update: 2024-09-26 10:33:39 UTC


README

Latest Version on Packagist Total Downloads

在我参与的一些项目中,我发现,我们经常希望最大文件大小与 php.ini 内的设置相同。随着时间的推移,由于不同的要求,php.ini 内的值可能会改变,但验证规则通常保持不变,直到某个用户触发了规则,阻止他们继续操作。

得益于这个规则,最大文件大小将自动根据当前的 php.ini 设置加载,因此它保持同步。

安装

您可以通过 composer 安装此包

composer require antoninmasek/laravel-max-upload-size-rule

基本用法

Validator::make(['file', $file], [Rule::file()->maxUploadSize()]);
Validator::make(['file', $file], [new MaxUploadSizeRule()]);

大于 max_upload_size 的文件

请注意,如果文件大于 max_upload_size,则您将收到以下错误消息:“文件上传失败”。原因是,即使您尝试检查上传的文件,您也会发现它存在错误并且没有上传,因为它超出了限制。

大于 post_max_size 的文件

在这种情况下,Laravel 将抛出异常。在生产环境中,您可能会看到“413 内容过大”错误,在调试模式下,您会看到“PostTooLargeException”。

为什么使用这个规则呢

如上所述——得益于这个规则,您将拥有与 php.ini 同步的最大允许文件大小,这意味着您基本上是在使用现有的最大规则,但它始终使用基于 php.ini 的当前设置。在其他所有方面,它的行为与最大规则完全相同。

测试

composer test

致谢

许可

MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件