我想方便用户在我的 WordPress 博客上从前端上传个人资料图片。我找到了一个插件“广告本地头像”,它可以帮助我(直到现在我还没有尝试过)。
但我担心如果用户上传一个非常大的文件或感染病毒的文件会发生什么。如何在 WordPress(或 PHP)中执行以下操作:
- 在将文件保存到服务器之前检查文件大小。(上传时检查文件大小)
- 扫描文件内容
我想方便用户在我的 WordPress 博客上从前端上传个人资料图片。我找到了一个插件“广告本地头像”,它可以帮助我(直到现在我还没有尝试过)。
但我担心如果用户上传一个非常大的文件或感染病毒的文件会发生什么。如何在 WordPress(或 PHP)中执行以下操作:
- 在将文件保存到服务器之前检查文件大小。(上传时检查文件大小)
PHP 在解码 POST 请求时检查最大文件大小。它在 php.ini 中设置为upload_max_filesize
. 它通常在 10MB 左右。
但是您可以通过简单的测试轻松设置特定于应用程序的最大文件大小:
if ($_FILES["image"]["size"] >= 500000) {
然后做出相应的反应并打印错误消息。对于个人资料图像和头像,500K 应该绰绰有余。
- 扫描文件内容
然后,您需要在服务器上安装病毒扫描程序。有各种可用。由于它是开源的,许多 Unix/Linux 服务器可能有clamav。它可以像这样从 PHP 中使用:
exec("clamscan '$filename'", $output, $result);
if ($result === 0) {
// everything ok
}
输出状态$result
可能是1
病毒或2
其他错误。