sunspikes/clamav-validator

为文件上传定制的 Laravel 5 抗病毒验证器。

v2.9.1 2024-07-23 12:35 UTC

README

SensioLabsInsight Code Coverage Code Quality Build Status Latest Stable Version License

一个基于 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] 和其他 优秀的贡献者