Felix Riesterer: falsche filesize()???

Beitrag lesen

Liebe Spezialisten!

Mein simples Filelisting in PHP gibt mir bei großen Dateien falsche Dateigrößen an. Ein Beispiel: xyz.rar -1378506251 bytes. Dabei ist die Datei 2,7GB groß! Seit wann kann eine Dateigröße negativ sein??? Ich vermute, dass da irgendeine Binär-nach-dezimal-Umwandlung schief gelaufen ist. Hier mein script, das aber eigentlich nicht daran schuld sein sollte...

<?php
$folder="meinVerzeichnis"
include "icon.inc.php"; <-- das is für Filetyp Icons
$open=opendir($folder);
while ($file = readdir($open))
 {
 $bytes = filesize($folder.'/'.$file);
 $realsize = round($bytes/1073741824,2).' GB.';
 if($bytes < 1024) $realsize = $bytes.' bytes.';
 if($bytes > 1024 && $bytes < 1048576) $realsize = round($bytes/1024,2).' KB.';
 if($bytes > 1048576 && $bytes < 1073741824) $realsize = round($bytes/1048576,2).' MB.';
 if($file != "." && $file != "..")
  {
  if(is_dir($folder.'/'.$file) == false)
   {
    $fileicon = pathinfo($file);
    $fileicon = $fileicon["extension"];
    echo '                  <a href="'.$folder.'/'.$file.'">'.icon($fileicon),$file.'</a> '.$realsize.'<br>'.chr(13);
   }
  }
 }
closedir($open);
?>

Wo liegt also der Fehler? Liegt er wirklich in PHP 4.3.4, oder beim Apache 2.0.48 für Windoof, oder muss ich etwas umprogrammieren, damit das tut?

Vielen Dank für euren kompetenten Rat.

Grüße aus Tübingen.