验证上传的文件的大小和病毒

时间:2011-04-17 02:54:48

标签: php wordpress file-upload virus-scanning

我想方便用户在我的WordPress博客上从前端上传个人资料图片。我找到了一个插件“ad local avatar”,它可以帮助我(直到现在我还没试过)。

但是我担心如果用户上传非常大的文件或受病毒感染的文件会发生什么。如何在WordPress(或PHP)中执行以下操作:

  1. 将文件大小检查保存到服务器之前。 (在上传时检查文件大小)
  2. 扫描文件内容

1 个答案:

答案 0 :(得分:8)

  
      
  1. 将文件大小检查保存到服务器之前。 (在上传时检查文件大小)
  2.   

PHP在解码POST请求时正在检查最大文件大小。它是在带有upload_max_filesize的php.ini中设置的。它通常大约10MB左右。

但您可以通过简单的测试轻松设置特定于应用程序的最大文件大小:

if ($_FILES["image"]["size"] >= 500000) {

然后相应地做出反应并打印错误信息。对于个人资料图片和头像,500K应该足够了。

  
      
  1. 扫描文件内容
  2.   

然后,您需要在服务器上安装病毒扫描程序。有各种各样的可用。由于它是开源的,许多Unix / Linux服务器可能有clamav。它可以像PHP一样使用:

exec("clamscan '$filename'", $output, $result);

if ($result === 0) {
     // everything ok
}

病毒的输出状态$result1,其他错误的输出状态为2