PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [PHP] Client soll Download auf dem Server starten


Popopinsel
2010-02-20, 13:48:28
Hallo zusammen,

ich übe mich gerade etwas in PHP und möchte eine kleine Seite zusammenbasteln.

Auf der Seite gibt es ein Eingabefeld sowie einen Submit-Button. In das Feld wird die URL zu einem Datei-Download eingetragen, entweder ein Direkt-Link zur Datei oder zum Dowload-Script des Hosters. Die Datei soll dann auf dem Server (wo meine kleine Seite liegt) gespeichert werden.

Das mit dem Direkt-Link funktioniert wunderbar mittel get_file_contents und anschließend put_file_contents. Allerdings weiß ich nicht, wie ich das ganze dynamischer gestalte, sodass man auch Links im Stil von www.download.de/download.php?file=123gh13 eingeben kann und der Server die entsprechende Datei herunterläd.

Vielleicht kann mir jemand helfen?

Marbleearth
2010-02-20, 16:33:32
Ich hoffe ich habe dich richtig verstanden.
Imo musst du doch nur sowas in der Art prüfen:

if (isset($_GET['file'])) {

...
}

und da drin kannst du dann quasi genauso weitermachen weil du ja in $_GET['file'] den Dateinamen drin hast. du musst also nur noch den link zusammenbauen in dem stil:

$link = 'http://blablub.de/' . $_GET['file'] . '.deine_dateiendung';

Dann kannst du so weitermachen wie da wo der Direktlink eingegeben wurde.

natürlich solltest du $_GET['file'] nicht ungeprüft entgegen nehmen.

Ich hoffe ich konnte dir helfen ;)

P.S. gehört übrigens mehr in Programmierung als in Web-Design

AlecWhite
2010-02-23, 19:46:43
schlag mal nach, wie es bei deinem Hoster mit den HTTP-Wrapper ausschaut.

Weitere Infos: http://de.php.net/manual/de/wrappers.http.php

Unfug
2010-02-25, 09:59:28
Ich hab es so verstanden, dass Du ein Root Server hast und möchtest, dass der die Dateien runterlädt.

Falls ich richtig liege:

Erstelle in deinem Webserver ein Verzeichnis: /srv/www/htdocs/Download/
Gebe dem Verzeichnis (testweise) alle Rechte: chmod 777 /srv/www/htdocs/Download

Erstelle ein Datei: /srv/www/htdocs/Download/script.php
Fülle die Datei mit dem Inhalt:
<?php
exec("wget URLZUIRGENDEINERDATEI");
?>


Wenn Du jetzt die Datei über
http://meinserver/Download/script.php
ausführst, wird die entsprechende Datei mittels wget heruntergeladen.


Ab hier nur weiterlesen, wenn das so geplant war:
1. Nur die Script Datei in Download lassen, weil sonst auch die *.exe Dateie und andere "bösartigen Dateien" ausgeführt werden können
2. Den Download Pfad von wget so umlenken, dass der z.B. in eine "nicht ausführbares" Verzeichnis geht /tmp/tmpFiles/ (Befehl: chmod 666).
3. Alles nicht so spartanisch machen :D