Toon posts:

[php] Grootte opvragen uit een dir.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo, ik heb het onderstaand scriptje en kom d'r niet echt uit. Mijn vraag is: hoe kan ik de grootte van een bestand op vragen? Dus, er moeten bestanden komen met de bijbehorende grootte.
PHP:
1
<? // $padnaam met slash aan het eind ///usr/local/plesk/apache/... $padnaam="/hier staat dus wat eigenlijk hierboven staat/"; // $websiteurl zonder slash aan het eind $websiteurl="En hier staat het adres van de site/mapnaam"; function dir_weergeven() {     global $padnaam, $websiteurl;     $contentfolder = $padnaam; // het volledige pad naar de folder met events     if ($tekstlist = @opendir($contentfolder))     { // alle bestanden worden ingelezen in $eventlist       echo "<table border=\"1\">";       while($dit_bestand = readdir($tekstlist))       { //kijken of van iedere map een button bestaat         if($dit_bestand != "." &amp;&amp; $dit_bestand != "..")         { // onzichtbare bestanden filteren             $dit_bestand = rawurlencode($dit_bestand);             $weglaten = strtok($dit_bestand, ".");             $lijst[] = "<a href=\"$websiteurl/$dit_bestand\">$weglaten</a><br>\n";         }       }       closedir($tekstlist);       natcasesort($lijst);            while(list($key,$value)=each($lijst)) {                 //$grootte = filesize ($lijst); werkt niet                 //$grootte = filesize ($value); werkt ook niet         echo "<tr><td>Download NU : </td><td>$grootte</td><td>$value</td></tr>";       }       echo "</tabele>";     } } dir_weergeven(); ?> ?>

Hij geeft deze error: "Warning: stat failed for Array (errno=2 - No such file or directory)" En deze verwijst naar $grootte = filesize ($value); (als ik de slashes weghaal :))...Hoe zou dit eventueel opgelost worden?
Alvast bedankt

  • sebas
  • Registratie: April 2000
  • Laatst online: 16-12-2025
PHP:
1
<?// geeft de grote van een file of een dir incl subdirs terug// twee decimalen$dir_or_file = '/home/user/file';print(round((preg_replace('/(.*)\n(.*)/','',(exec('du -bc ' . $dir_or_file .'|grep total|sed -e s/total//'))/1024)/1024),2).' Mb');?>

kan wellicht nog korter, maar zo werkt het ieg voor subdirs en bestanden op linux.

Everyone complains of his memory, no one of his judgement.


Verwijderd

Topicstarter
En hoe doe je dit per bestand?...Ik heb nu het totaal van alle bestanden.

Verwijderd

code:
1
echo filesize($file_name);

  • sebas
  • Registratie: April 2000
  • Laatst online: 16-12-2025
met dit snippet krijg je een recursive dirlisting. Je kunt het naar je smaak aanpassen.
PHP:
1
<?function show_dir($dir, $pos=2){     if($pos == 2)     {          echo "<hr><pre>";     }     $handle = @opendir($dir);     while ($file = @readdir ($handle))     {        if (eregi("^\.{1,2}$",$file))        {          continue;        }     if(is_dir($dir.$file))        {          printf ("% ".$pos."s <b>%s</b>\n", "|-", $file);          show_dir($dir.$file."/", $pos + 3);        }        else        {          printf ("% ".$pos."s %s\n", "|-", $file);        }     }     @closedir($handle);     if($pos == 2)     {          echo "</pre><hr>";     }}show_dir("special/");?>

Everyone complains of his memory, no one of his judgement.