Wie realisiere ich Downloads mit PHP?

Kurzbeschreibung:
So kann man Downloads über PHP realisieren, um z.B. einen Downloadcounter einzubauen oder mit Hilfe von Referer-Checks externes verlinken zu verhindern.

Tags:
Allgemeines/Grundlagen, Für Entwickler, QS_2014, Tipps und Tricks, Tutorials
Keywords:
check, counter, datei, dateiname, download, name, php, referer, unsichtbar, url, verstecken, versteckt
check counter datei dateiname download name php referer unsichtbar url verstecken versteckt Möglichkeit A
Code: Alles auswählen
//hier z.B. Code für Referer-Check oder Downloadcounter

header("Location: downloads/irgendwas.zip");

Vorteil: Der eigentliche Downloadprozess wird vom Webserver behandelt, was performance- und funktionsmäßig besser ist.
Nachteil: wer will, kommt mit entsprechenden Programmen trotzdem an die Ziel-URL. Allerdings reicht ein simples Umbenennen des Ordners mit den Dateien, um alle "illegalen" Links ins Leere laufen zu lassen, ohne dass die "legalen" beeinträchtigt werden.
Fazit: Einfache Lösung, um z.B. Referer-Checks oder Downloadcounter zu realisieren.

Möglichkeit B:
Code: Alles auswählen
//hier z.B. Code für Referer-Check oder Downloadcounter

header("Content-type: application/zip");
header("Content-disposition: attachment; filename=irgendwas.zip");
readfile("downloads/irgendwas.zip");

Vorteil: ein Umgehen der PHP-Datei ist auch mit speziellen Programmen nicht möglich.
Nachteile: Der PHP-Prozess läuft während des Downloads weiter und belastet den Server unnötig. Falls die Zieldatei auf einem anderen Server liegt, wird der dreifache Traffic verursacht (einmal auf dem Server mit der Datei und zweimal auf dem mit dem PHP-Script). Außerdem müssten Features wie abgebrochene Downloads fortsetzen, manuell in PHP nachgebaut werden.
Fazit: Speziallösung, falls man trotz Möglichkeit A hartnäckige Probleme mit direkten Verlinkungen auf die Downloaddateien hat.


  • Ähnliche Artikel
    Relevanz
    Zugriffe
    Zuletzt bearbeitet