[PHP] Limiter taille d'un dossier

Fermé
cacahuete586 Messages postés 2 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 18 mars 2007 - 18 mars 2007 à 11:51
 jobo83.com - 29 juin 2007 à 09:11
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 :)
A voir également:

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
-1
bonjour
je cherche egalement à limiter un répertoire à 100 mo sauf que moi je ne sais pas par ou commencer je ne sais pas comment calculer la taille du répertoire et encore moi en bloquer l'update si le quota est dépassé
si quelqu'un pouvez m'aider je lui en serais trés reconnaissant
0
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

@+
0