$_FILES['file']['size'] und wie komme ich zu kb, mb?

hi,

habe ein upload script geschrieben und würde die size nun gerne noch korrekt ausgeben. habe schon von B in KB umgerechnet ( is doch / 1024 oder?) und wollte mal fragen ob mir jemand von euch da weiterhelfen kann wie man das praktischer macht (habs in einer if abfrage =/ ) und wie man von kb zu mb kommt.. danke im vorraus..

und danke für eure Zeit im Vorraus schonmal ;)
 
Zuletzt bearbeitet:
1 MByte = 1024 KByte = 1024 * 1024 Byte

Wenn ich dich richtig verstanden habe willst du die Dateigröße jeweils in der am besten passenden Einheit angeben, also z.B. nicht etwa "1048576 Byte" oder "1024 Kbyte" sondern direkt "1 MByte"?

Da mußt du entweder wirklich einen if-elseif-else-Block schalten (bestünde dann aus 3 Segmenten) oder du arbeitest mit switch/case. Im Prinzip eigentlich das gleiche, anders geht es meines Wissens nach nicht.
 
PHP:
$size = 1324623434; // Angenommener Wert in Byte
$ausgabe = DisplaySize($size);

function DisplaySize($size,$roundto = 2) {
 $sizes = Array(" Byte"," KB"," MB"," GB"," TB");
 $size2 = 0;
 while($size > 1024) {
  $size = $size / 1024;
  $size2++;
 }
 return round($size,$roundto).$sizes[$size2];
}

Ich denke, dass dir diese Funktion weiterhilft.
Du rufst die DisplaySize mit folgenden Parametern aus:
1. Größe in Byte
2. Optional Zu rundende Nachkommastellen

Ich denke, dass Terrabyte reichen sollte. Wenn nicht kannst du das Array in der Funktion ja noch erweitern.

Viel Spaß damit.
 
ja vielen dank, das war mein Anliegen :)

hab inzwischen schon von einem freund eine andere alternative bekommen:

$spacetyp = array ( 'B', 'KB', 'MB', 'GB','TB');
$sptyp = 0;
while ( $space > 1024 )
{
$space = $space/1024;
$sptyp++;
}
$space = round($space,2);
$groesse = $space.' '.$spacetyp[$sptyp];


danke für die Mühen ;)
 
Macht nichts.
Ist ein Standartscript / eine Standartfunktion.
Siehst ja die Ähnlichkeiten zwischen den beiden Codes.
Fast beängstigend *g*...

Guten Rutsch!
 
Zurück