18. April 2024

PHP: filesize() – Die Größe einer Datei bestimmen

Bei Downloads wird oft neben dem Link die Größe angegeben, um den Nutzer auf die vorraussichtliche Downloadzeit einzustellen.

Die Größe einer Datei lässt sich mit PHP ganz einfach ermitteln und ausgeben:

 <?php

echo filesize("pfad/zur/datei.exe");
?> 

In den Anführungszeichen einfach den (relativen) Pfad der Datei eintragen.
Die Ausgabe erfolgt in Byte.
Das ist oft unpraktisch, da Nutzer Angaben in Megabyte gewohnt sind.
filesize() gibt aber eine Zahl zurück mit der sich auch rechnen lässt.
Ein Megabyte sind bekanntlich eine Million Bytes. Um die Angaben umzurechnen muss man also nur durch 1000000 teilen und die Einheit ergäzen:

 <?php
$size = filesize("pfad/zur/datei.exe")/1000000;
echo "Die Datei ist $size MB gro&szlig;!";
?> 

Wie Sie die Ausgabe, die noch etwas lang und unübersichtlich zu lesen ist, runden können, erfahren Sie hier: PHP: round() – Zahlen runden

Hinweis: Bei Dateien >2GB gibt es aufgrund der Verwendung von Integern oft Probleme und filesize() ist hierfür nicht geeignet.

Gerundetete filesize ausgeben

Um die gerundetete Filesize auszugeben, muss man PHP round() die Filesize als Parameter übergeben und die gewünschte Anzahl der  Nachkommastellen mit angeben.

Eine mögliche Umsetzung sieht so aus:

 <?php
$size = round(filesize("BeispielDatei.exe")/1000000, 2);
echo "Die Datei ist $size MB gro&szlig;!"
?>

Da durch 1000000 geteilt wird, ist die Angabe als Megabyte aufzufassen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert