sunspikes / clamav-validator
为文件上传定制的 Laravel 5 抗病毒验证器。
Requires
- php: ^7.3|^8.0
- ext-sockets: *
- illuminate/support: ~5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0
- illuminate/validation: ~5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0
- xenolope/quahog: ^3.0
Requires (Dev)
- mockery/mockery: ^1.5.0
- phpunit/phpunit: ^9.5.10
- roave/security-advisories: dev-master
- scrutinizer/ocular: dev-master
README
一个基于 ClamAV 抗病毒扫描器的自定义 Laravel 病毒验证器,用于文件上传。
要求
您必须在服务器上运行 ClamAV 抗病毒扫描器才能使此包正常工作。
您可以在官方 ClamAV 文档 上查看 ClamAV 的安装说明。
例如,在 Ubuntu 机器上,您可以这样做
# Install clamav virus scanner sudo apt-get update && sudo apt-get install -y clamav-daemon # Update virus definitions sudo freshclam # Start the scanner service sudo systemctl enable --now clamav-daemon clamav-freshclam
此包未在 Windows 上进行测试,但如果您已运行 ClamAV(通常在端口 3310 上),则应能正常工作。您还需要安装并启用 sockets
扩展(所有不使用此模块的执行都将因以下错误而失败 - "Use of undefined constant 'AF_INET'"
)。
安装
1. 通过 Composer 安装包。
$ composer require sunspikes/clamav-validator
2. 添加服务提供者(对于 Laravel 5.4 或以下版本)
此包支持 Laravel 的新 包发现。
如果您使用的是 Laravel < 5.5,您需要将 Sunspikes\ClamavValidator\ClamavValidatorServiceProvider::class
添加到您的 config/app.php
文件中的 providers
数组中
'providers' => [ // ... Sunspikes\ClamavValidator\ClamavValidatorServiceProvider::class, ],
3. 发布供应商包中的资产
配置文件
默认配置文件使用 ENV
来覆盖默认值。如果您仍然想更改配置文件,请运行以下命令以发布包配置文件
php artisan vendor:publish --provider="Sunspikes\ClamavValidator\ClamavValidatorServiceProvider" --tag=config
命令完成后,您应该有一个 config/clamav.php
文件,它也将被使用。
语言文件
如果您想自定义翻译或添加自己的语言,您可以运行以下命令将语言文件发布到您维护的文件夹中
php artisan vendor:publish --provider="Sunspikes\ClamavValidator\ClamavValidatorServiceProvider" --tag=lang
这将把语言文件复制到 resources/lang/vendor/clamav-validator
,适用于 Laravel >= 5.1
使用
像任何 Validator
规则一样使用它
$rules = [ 'file' => 'clamav', ];
ClamavValidator
将自动将多个文件逐个通过 ClamAV 运行,如果 file
表示多个上传的文件。
作者
Krishnaprasad MG [@sunspikes] 和其他 优秀的贡献者