antoninmasek / laravel-max-upload-size-rule
添加 Rule::file()->maxUploadSize() 验证规则,该规则将验证文件大小是否与 `upload_max_filesize` php.ini 设置匹配
0.0.3
2024-06-26 09:57 UTC
Requires
- php: ^8.2
- illuminate/contracts: ^10.0||^11.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- laravel/pint: ^1.14
- mockery/mockery: ^1.6
- nunomaduro/collision: ^8.1.1||^7.10.0
- orchestra/testbench: ^9.0.0||^8.22.0
- pestphp/pest: ^2.34
- pestphp/pest-plugin-arch: ^2.7
- pestphp/pest-plugin-laravel: ^2.3
- spatie/laravel-ray: ^1.35
README
在我参与的一些项目中,我发现,我们经常希望最大文件大小与 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)。有关更多信息,请参阅 许可证文件。