Dynamische Downloadliste mit Dateigröße

  • Vielleicht möchten Sie Ihren Besuchern einige Dateien zum Download anbieten? Wir haben dies am Beispiel eines Hintergrundbildes mit PHP realisiert und möchten Ihnen diesen Codeschnipsel nicht vorenthalten. Sinn dieses Scriptes ist die Errechnung der Dateigröße. Wir bieten das Hintergrundbild in verschiedenen Formaten (jpg, bmp, zip) an. Zu Beginn unseres Scripts legen wir den Pfad fest, in dem die Downloads später liegen. Dieser Pfad wird relativ zum aktuellen Ort (wo die Scriptdatei liegt) angegeben. Im Beispiel liegen die Bilder also im Unterordner "wallpapers/". Nun wird eine Funktion size() definiert. Übergeben wird der Pfad zur zu berechnenden Datei. In der Variablen <#$>size steht nun das gerundete Ergebnis der Dateigröße in Megabyte. Die Funktion filesize() funktioniert nur bei Unix-Systemen. Anschließend wird der Zwischenspeicher wieder gelöscht und als Rückgabe Die Dateigröße in Klammern mit Bezeichnung MB (für Megabyte zurückgegeben): <?php<#$>pfad= "wallpapers/"; //Pfad zur Datei function size (<#$>pfad) {<#$>size= round((filesize("<#$>pfad")/1024/1024),2);@clearstatcache;<#$>msg = " (" . <#$>size . " MB".")";return <#$>msg;}?> Jetzt kann ein ganz normales HTML-Gerüst eingefügt und die Seite beliebig gestaltet werden. An der Stelle, an der die Berechnung erfolgen soll, wird dann folgendes eingegeben: <?php<#$>file="800x600";<#$>ext=".zip";echo "<a href='".<#$>pfad.<#$>file.<#$>ext."' target='blank'>".<#$>ext."</a>";echo <#$>msg = size(<#$>pfad.<#$>file.<#$>ext)." ";<#$>ext=".bmp";echo "<a href='".<#$>pfad.<#$>file.<#$>ext."' target='blank'>".<#$>ext."</a>";echo <#$>msg = size(<#$>pfad.<#$>file.<#$>ext)." ";<#$>ext=".jpg";echo "<a href='".<#$>pfad.<#$>file.<#$>ext."' target='blank'>".<#$>ext."</a>";echo <#$>msg = size(<#$>pfad.<#$>file.<#$>ext)." ";?> Zur Erklärung: Zunächst wird die Variable <#$>file deklariert. Hier steht der Dateiname ohne Dateiendung! Da wir das Hintergrundbild in verschiedenen Formaten anbieten wollen, ist eine hohe Dynamik geboten. Nun kommt beliebig oft der gleiche Code. In <#$>ext wird die Dateiendung mit vorangestelltem Punkt gesetzt. Die folgenden Echo-Befehle geben nur den Link und das Ergebnis der Funktion size() aus. Die Ausgabe im Browser sieht nun beispielsweise so aus: zip (1.6 MB) bmp (3.36 MB) jpg (0.11 MB) Das war es schon. Vielleicht haben wir Ihnen damit wieder mal eine kleine Hilfe oder Anregung gegeben, Ihren bestehenden Code weiter zu verbessern oder Funktionalitäten hinzuzufügen. Natürlich kann man das ganze noch um einige Dinge erweitern oder weiter dynamisieren - das ist ja ein Vorteil von PHP!