[PHP] Limiter taille d'un dossier
cacahuete586
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
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 :)
A voir également:
- [PHP] Limiter taille d'un dossier
- Comment réduire la taille d'un fichier - Guide
- Dossier appdata - Guide
- Afficher taille dossier windows - Guide
- Impossible de supprimer un dossier - Guide
- Mettre un mot de passe sur un dossier - Guide
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:
Voilà, en espérant t'avoir aidé, et si tu souhaite la fonction complète, contacte moi par mail, je la rédigerais.
jobo83
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
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
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
@+