我是一个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
}