Filesize liefert falsche größe
Problem mit der Funktion Filesize bei Dateien größer 5GB.
Hallo zusammen,
wie schon eingangs beschrieben liefert mit die Funktion filesize eine flaschen wert. Das aber auch nur bei Dateien (.zip) die ca. 5GB oder größer sind. Nachdem ich etwas gesucht habe, bin ich auf den Hinweis gestoßen die Funktion filesize() mit sprintf("%u", filesize($filename)) zu formatieren. Leider geht das nur mit Dateien zwischen 2GB und 4GB. Hat da jemand einen Tip für wie ich das Problem lösen kann oder gibt es eine andere Möglichkeit die Dateigröße zu ermitteln? Für Hilfe wäre ich dankbar.
apache 1.3
php 5.2.6
Mit freundlichen Grüßen
Thorsten
Hallo zusammen,
wie schon eingangs beschrieben liefert mit die Funktion filesize eine flaschen wert. Das aber auch nur bei Dateien (.zip) die ca. 5GB oder größer sind. Nachdem ich etwas gesucht habe, bin ich auf den Hinweis gestoßen die Funktion filesize() mit sprintf("%u", filesize($filename)) zu formatieren. Leider geht das nur mit Dateien zwischen 2GB und 4GB. Hat da jemand einen Tip für wie ich das Problem lösen kann oder gibt es eine andere Möglichkeit die Dateigröße zu ermitteln? Für Hilfe wäre ich dankbar.
apache 1.3
php 5.2.6
Mit freundlichen Grüßen
Thorsten
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 89059
Url: https://administrator.de/forum/filesize-liefert-falsche-groesse-89059.html
Ausgedruckt am: 22.04.2025 um 03:04 Uhr
4 Kommentare
Neuester Kommentar
Ich benutze dafür immer diese Funktion.
<?php
function viewsize($size){
$kb = 1024;
$mb = 1024 * $kb;
$gb = 1024 * $mb;
$tb = 1024 * $gb;
if($size < $kb)
return $size.' B';
if($size < $mb)
return round($size/$kb,2).' KB';
if($size < $gb)
return round($size/$mb,2).' MB';
if($size < $tb)
return round($size/$gb,2).' GB';
return round($size/$tb,2).' TB';
} // function - viewSize
?>
Sorry dann hatte ich dich falsch verstanden. Ich konnte bei php.net einiges drüber finden. Am besten probierst du selber mal einiges aus und gibst uns dann eine Rückmeldung.
http://de.php.net/filesize
Fand sowas zb. interessant vielleicht gehts ja.
http://de.php.net/filesize
Fand sowas zb. interessant vielleicht gehts ja.
the fastest way to get the correct filesize in windows an linux would be this:
<?php
echo sprintf("%u", filesize($file));
?>
It prints the result of filesize as UNSIGNED INT so it can be until 4GB.
The reason is, SIGNED INT runs until 2GB and flips to -2GB watch following:
file<2GB = SIGNED: 1048576512 UNSIGNED: 1048576512
file>2GB = SIGNED: -2100140103 UNSIGNED: 2194827193
file<4GB = SIGNED: -100662784 UNSIGNED: 4194304512
p.s. I found this at: http://www.php.net/manual/en/function.filesize.php