Downloadsection in PHP
Mit diesem Script brauchst du nur deine Dateien zum Download in einen Ordner packen und PHP erstellt daraus eine Downloadübersicht mit Link.Wer kennt das nicht? Ihr wollt mehrere Downloads auf eurer Seite anbieten und müsst jede Datei einzeln in eine HTML-Tabelle schreiben. yubb.de schafft nun Abhilfe. Hier eine Anleitung für ein Script, wobei ihr einfach nur die Dateien in ein Verzeichnis eurer Download-Section hochladen müsst. Dateiname, Größe und Downloadlink werden dann automatisch angezeigt. Hier nun zuerst das Script:
| PHP-Datei: | |
1 |
<?
|
So kann das Script schon direkt eingebaut und verwendet werden. Wenn ein Verzeichnis geöffnet wird, werden jeweils auch die Ordnerstrukturen angezeigt. Also auch die Punkte . fürs aktuelle und .. für das übergeordnete Verzeichnis. Um diese auszublenden, benötigen wir diesen Teil:
| Code: |
if ($file != "."){ if ($file != ".."){ |
Wobei hier != bedeutet, wenn die Datei nicht . oder .. heisst, dass sie dann angezeigt wird.
Und, um zu verhindern, das jemand über den Browser in das Verzeichnis deiner Downloads gelangt, speicherst du hier noch eine index.html hinein. Diese wird dann aufgerufen, wenn jemand http://www.deineurl.de/download/ eingibt.
Und damit auch diese index.html nicht als downzuloadende Datei angezeigt wird, benötigen wir dies:
| Code: |
if ($file != "index.html") { |
Was jetzt noch zu tun ist, die Zeile, wo dann der Download steht, euren Wünschen entsprechend anzupassen. Dies geschieht hier:
| Code: |
print "<a href='$path/$file'><font><b>$file</b></a> ( size: $mb MByte )</font> "; |
Geschrieben von DiWoWo am 18.06.2004 (6456x gelesen)

Wobei man sich
if ($file != "."){
if ($file != ".."){
if ($file != "index.html" {
einsparen kann und stattdessen
if($file!="." && $file!=".." && $file!="index.html") {
schreiben kann...
Man muss nur die entsprechenden }-Klammern löschen.
if ($file != "."){
if ($file != ".."){
if ($file != "index.html" {
einsparen kann und stattdessen
if($file!="." && $file!=".." && $file!="index.html") {
schreiben kann...
Man muss nur die entsprechenden }-Klammern löschen.
Geschrieben von Phil Marx
Mir ist noch etwas aufgefallen:
Es wäre besser, die Dateigrößen nicht einzulesen und dann nach
3 Stellen zu beschneiden ($mb = substr ("$sizemb", 0, 3);). Dies hätte zur Folge, dass z.B. Dateien > 100 MB keine, zweistellige Dateigrößen eine und einstellige Dateigrößen zwei Nachkommastellen haben.
Besser wäre es, die Dateigröße in MB und zwei Nachkommastellen zu runden:
$mb = round ($sizemb,2);
Einfach ggf. die Zeilen ersetzen.
Es wäre besser, die Dateigrößen nicht einzulesen und dann nach
3 Stellen zu beschneiden ($mb = substr ("$sizemb", 0, 3);). Dies hätte zur Folge, dass z.B. Dateien > 100 MB keine, zweistellige Dateigrößen eine und einstellige Dateigrößen zwei Nachkommastellen haben.
Besser wäre es, die Dateigröße in MB und zwei Nachkommastellen zu runden:
$mb = round ($sizemb,2);
Einfach ggf. die Zeilen ersetzen.
Geschrieben von Phil Marx
Blöd ist nur, dass die Dateien nicht sortiert werden
Geschrieben von dasepp
