[PHP] Limiter taille d'un dossier
cacahuete586
Messages postés
2
Statut
Membre
-
jobo83.com -
jobo83.com -
Bonjour,
Je souhaiterais limiter la taille d'un dossier sur mon ftp, je vous explique, certains de mes membres de la communauté voudraient bien héberger leurs quelques fichiers persos sur mon ftp. Pour éviter les dérives je souhaiterais par exemple appliquer une taille limite de 20-30 mo par utilisateur. Il aurait un accès à son dossier sur son FTP. Cependant j'ai effectué des recherches sur le net mais sans succès.
J'avais pensé à calculer la taille du dossier (ça ok) et si celui-ci dépasse la taille limité, on ne peut plus rien uploadé. (ça je sais pas faire)
D'avance merci :)
Je souhaiterais limiter la taille d'un dossier sur mon ftp, je vous explique, certains de mes membres de la communauté voudraient bien héberger leurs quelques fichiers persos sur mon ftp. Pour éviter les dérives je souhaiterais par exemple appliquer une taille limite de 20-30 mo par utilisateur. Il aurait un accès à son dossier sur son FTP. Cependant j'ai effectué des recherches sur le net mais sans succès.
J'avais pensé à calculer la taille du dossier (ça ok) et si celui-ci dépasse la taille limité, on ne peut plus rien uploadé. (ça je sais pas faire)
D'avance merci :)
Configuration: Windows XP Firefox 2.0.0.2
1 réponse
-
Donc, pour faire court, si tu as déjà réussi à calculer la taille du dossier, il te suffit d'en créer une variable (par exemple $taille_dir)
et de soumettre l'affichage du champs d'upload à une condition:
CODE:
if ($taille_dir > $taille_limite) { echo"Vos possibilités de télechargement sont épuisées!<br> Vous occupez actuellement ".$taille_dir." Mo, la taille maximale étant de ".$taille_limite." Mo, nous vous conseillons de libérer de l'espace afin de pouvoir à nouveau envoyer vos images.<br> Le webmaster" } else { <input type='file' name='userfile'> }
Voilà, en espérant t'avoir aidé, et si tu souhaite la fonction complète, contacte moi par mail, je la rédigerais.
jobo83-
-
Bonjour webmister,
Voici donc la fonction complète, à toi ensuite de l'integrer à ton formulaire, mais cela devrait être assez simple:
<?
function spaceDir($adr=".") {
static $size;
$dp=opendir($adr);
do {
$itm=readdir($dp);
if (is_dir("$adr/$itm") && ($itm!=".") && ($itm!="..") && ($itm!="")) {
spaceDir("$adr/$itm");
}
elseif (($itm!=".") && ($itm!="..") && ($itm!="")) {
$size = $size + filesize("$adr/$itm");
}
}
while ($itm != false);
closedir($dp);
return round($size / (1024*1024),2);
}
$taille_dir = spaceDir();//Taille de repertoire courant en MO
//$taille_dir = spaceDir("../../dossier_X");//Taille d'un repertoire distant en MO
$taille_limite = 100;//Taille limite fixée en Mo (ici 100 Mo, il suffit de remplacer par la valeur de ton choix)
if ($taille_dir > $taille_limite)
{
echo"Vos possibilités de télechargement sont épuisées!<br>
Vous occupez actuellement ".$taille_dir." Mo!<br>
La taille maximale étant de ".$taille_limite." Mo, nous vous conseillons de libérer de l'espace afin de pouvoir à nouveau envoyer vos images.<br>
Le webmaster";
}
else //Autrement on autorise l'affichage du champ d'upload
{
echo"<form><input type='file' name='userfile'><input type=submit name=submit value=Valider></form>";
}
?>
Voilà, pour plus d'infos, tu peux me contacter par le biais de mon site:
http://www.jobo83.com
@+
-