当文件夹大小大于10gb时,限制上传


Restrict Uploading if the Folder size is more than 10 GB

我是一个PHP新手,如果这个问题听起来很愚蠢,那么很抱歉。

我想知道是否有一种方法来限制文件上传通过PHP当上传的文件夹大小(不是文件大小)超过让我们说10 GB。如果有办法做到这一点,你能给我一个如何实现这一目标的概念吗?

我目前正在使用POST上传文件,上传文件夹在我的Hostgator服务器上。

谢谢!

下面的代码将计算文件夹中所有文件的总大小,从而给出文件夹的总大小

<?php
$path = "gal";
echo "Folder $path = ".filesize_r($path)." bytes";
function filesize_r($path){
   if(!file_exists($path)) return 0;
   if(is_file($path)) return filesize($path);
     $ret = 0;
     foreach(glob($path."/*") as $fn)
     $ret += filesize_r($fn);
     return $ret;
   }
 ?>

然后你可以在上传之前构建一个if语句来检查文件大小,如果它大于10gb,警告用户上传不能被处理。

编辑:

if语句看起来像这样

$filesize = filesize_r($path)
if $filesize > 10 000 000 000 {
    echo "Upload cannot be processed";
} else {
    uploadFile()
}

这里已经回答了一个类似的问题。在将临时文件移动到目录之前,请检查该目录的大小。你需要linux的答案,而不是windows的。

首先像这样检查目录大小

然后检查文件大小:

$file_size = $_FILES['file']['size'];

然后检查文件是否适合并相应地执行:

if (foldersize($path) + $file_size > "10000000000")
{
  Tell user it doesn't fit
}
else
{
  Upload file function
}