quota disk en php ou htaccess - PHP - Programmation
Marsh Posté le 19-11-2007 à 14:27:44
Je suis pas sur que ce soit faisable ni avec php, ni avec html...
Ou si c'est possible, j aimerai bien le savoir aussi!!
Marsh Posté le 19-11-2007 à 14:31:31
T'as deux solutions :
1) te baser sur le système de quotas du système d'exploitation si tu y as accès et s'il permet ce genre de limitation
2) parcourir le dossier d'upload et l'ensemble de ses sousdossiers en notant la taille totale des fichiers qu'ils contiennent.
Si cette taille + la taille du nouveau fichier > 1Go, tu supprimes le nouveau fichier et tu indiques l'erreur sinon tu copies le nouveau fichier là où il doit être.
Il n'y a pas d'autres moyens à ma connaissance de mettre en place ce genre de limitations.
Marsh Posté le 19-11-2007 à 21:07:51
si tu es sous linux ET que le safe mode n'est pas activé (en gros tu n'est pas chez un hébergeur) tu peux utiliser ce code :
<?php
function du( $dir )
{
$res = `du -sk $dir`; // Unix command
preg_match( '/\d+/', $res, $KB ); // Parse result
$MB = round( $KB[0] / 1024, 1 ); // From kilobytes to megabytes
return $MB;
}
$dirSize = du('/path/to/dir/');
?>
C'est pas bien du tout car c'est un appel système mais cela fonctionne tres bien.
Marsh Posté le 19-11-2007 à 21:27:37
je comprends pas bien comment ça marche ton script pierreC, peut tu le commenter en disant exactement ce que ça fait, ou alors met le en place sur ton serveur pour que je vois le résultat et un exemple qui marche.
(je ne comprends pas comment $res = `du -sk $dir`; peut donner une taille de dossier, car on met simplement la chaine `du -sk $dir` dans $res ;
quant à preg_match c'est une commande de recherche dans une chaine, et non une commande pour lancer une instruction unix....
je demande à voir une démo
merci
Marsh Posté le 19-11-2007 à 21:41:21
arff on a pas confiance dans ce que je dit ?
pourtant ca vient de là : http://fr2.php.net/manual/fr/funct [...] -space.php (et je l'ai testé avec de poster)
explication : "du -ks" est une commande système qui affiche la taille d'un dossier.
"du -ks /tmp" retourne "90380 /tmp"
preg_match permet ensuite juste de récuper 90380
un script minimu serait ca :
<?php
echo `du -sk /tmp`
?>
essaye ca deja voir si ca marche chez toi
Marsh Posté le 20-11-2007 à 09:17:58
il te manque un exec quelque part. Tu n'execute jamais ta commande "du".
Marsh Posté le 22-11-2007 à 20:21:16
ReplyMarsh Posté le 27-11-2007 à 10:19:19
Reply
Marsh Posté le 18-11-2007 à 17:31:08
Bonjour,
Ya t'il un fort en programmation php ou htaccess capable de m'expliquer comment arriver à donner un quota disque de 1 Go maximum à un dossier (ex : http://www.monsite.com/dossier ). Ce dossier est un dossier d'upload pour information et j'aimerais que les utilisateurs ne dépassent pas 1 Go de fichiers à mettre dedans.
Merci pour celui qui sait faire