quota disk en php ou htaccess

quota disk en php ou htaccess - PHP - Programmation

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

Reply

Marsh Posté le 18-11-2007 à 17:31:08   

Reply

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!!

Reply

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.

Reply

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.
 


---------------
Du tofu en Alsace : www.tofuhong.com
Reply

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

Reply

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


---------------
Du tofu en Alsace : www.tofuhong.com
Reply

Marsh Posté le 20-11-2007 à 09:17:58    

il te manque un exec quelque part. Tu n'execute jamais ta commande "du".

Reply

Marsh Posté le 22-11-2007 à 20:21:16    

les accents grave c'est la meme chose que exec


---------------
Du tofu en Alsace : www.tofuhong.com
Reply

Marsh Posté le 27-11-2007 à 10:19:19    

PierreC a écrit :

les accents grave c'est la meme chose que exec


 
On appelle ca des "Backticks"  ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed