HTML/PHP: Dateidownload direkt auf einen FTP-Server

SimonK91

Lieutenant
Registriert
März 2012
Beiträge
893
Hallo Forum,

ich suche eine mögliche Umsetzung, aus dem Browser heraus eine Datei bei dem Anklicken nicht direkt auf dem PC zu speichern, sondern im Hintergrund auf einen angegebenen FTP-Server hochzuladen. Funktioniert das am ehesten über PHP POST/PUT? Im Idealfall lässt sich dann noch auswählen, ob sie lokal gespeichert werden soll (wie es normalerweise ist wenn man abc.pdf aus dem Browser heraus anklickt), oder eben der Upload auf den FTP Server erfolgen soll.

Tante Google brachte mich auf http://php.net/manual/de/function.ftp-put.php

Bin ich da auf dem Holzweg oder sollte das für mein Vorhaben passen? Mir ist noch fraglich wie ich anstatt eine spezifische lokale Datei (wie in dem Script) zu definieren diese Verknüpfung bei onClick realisieren kann, dass er dann auch genau die Datei pickt (und somit als Quelle den Pfad auf dem aktuellen Webserver auswählt)

edit: Um das nochmal klar auszudrücken: Natürlich bezieht sich das Vorhaben nicht allgemein auf meinen Browser so dass ich es auf jeder X beliebigen Seite zu Verfügung habe, sondern selbstverständlich auf eine selbstgehostete Webseite mit vollem Zugriff auf HTML/PHP etc, so dass ich dort ein Script einbauen/umbauen kann!


Danke!
 
Willst du eine Datei direkt auf den FTP hochladen? Oder einen Browserlink auf den FTP laden?
Ich wüsste grade nicht, ob das ohne den Umweg über den Server wo das PHP script liegt funktioniert.

Beim hochladen, müsste das mit ftp_put, und $_FILES["datei"]["tmp_name"] gehen?!
 
Ich möchte quasi einen Browserlink bei Klick auf einen angegebenen FTP uploaden, anstatt zu downloaden. (im Idealfall eben mit Auswahl ob Download oder Upload im Hintergrund, aber das wäre das Sahnehäubchen)
 
Also mir ist kein Weg bekannt, das ohne den Umweg über den Server mit dem Script zu tun.
Es muss eine lokale Datei vorhanden sein, die man dann auf den FTP-Server schiebt.

Wenn es darum geht den Link abzuspeichern, würde ich das mit curl oder fopen machen.

Bei einem Upload, wie ich schon gesagt habe ftp_put & $_FILES mit ['tmp_name'] als $local_file (nie getestet, sollte aber funktionieren [zur not mit vorher move_uploaded_file() eine "richtige" datei erstellen und hochladen]).
 
Zuletzt bearbeitet:
Danke erstmal für deinen Input! So ganz verstehe ich nicht, was du mit "ohne den Umweg über den Server mit dem Script" meinst. Ich habe ja quasi vollen Zugriff auf den Webserver, von dem aus das ganze in Richung FTP gehen soll. Ich hatte mir das so vorgestellt, in die bestehende HTML Struktur ein PHP Script mit einzubinden der dieses Vorhaben dann realisiert. Bisher habe ich aber auch nur Snippets gefunden die das Uploaden von lokalen Dateien via PHP in Richtung FTP realisieren aber leider nicht direkt aus dem Browser heraus.
 
Ich habe das so Verstanden, dass das PHP-Script auf einem anderen Server liegt als das eigentliche Ziel, der FTP-Server?!
Und mir ist kein Weg bekannt, über PHP eine Datei direkt auf den FTP-Server zu speichern. Ich kenne es nur, dass eine lokale Datei angelegt werden muss, die dann auf den FTP-Server geschoben wird. - Sprich, der Server auf dem das PHP-Script liegt, lädt die gewollte Datei herunter, und schiebt diese dann anschließend auf den FTP-Server.
 
Zuletzt bearbeitet:
Meinst du mit "lokal" denn den jeweiligen PC des Browsernutzers? Wenn es mit PHP nur über einen download-upload geht anstatt direkt per script auf FTP zu uploaden dann ginge es ja auch so. Ich hätte nur gedacht dass das auch ohne diesen Umweg geht da PHP ja eine Menge kann...

Wie gehe ich dann am besten vor, sodass das automatisch beim Klicken runterlädt und dann zum FTP geschubbst wird?
 
Mit lokal meine ich eine lokale Datei auf dem Server, auf dem das PHP-Script liegt.
Wenn du das über einen Link machen willst, musst du ein Inputfeld bauen, in das du den Link einträgst. Diesen Link musst du dann an das PHP-Script übergeben und dort wie in meinem 2. Post mit curl oder fopen den Link auslesen/runterladen und anschließend diese dann lokale Datei auf den FTP-Server schieben.
 
Haben wir aneinander vorbei geredet wenn ich dir jetzt sage dass der Server wo die Datei liegt, der gleiche ist als der wo ich dann das PHP Skript eingebaut hätte? Also wäre die Datei dort ja schon immer lokal vorhanden. Es gibt stand heute kein PHP Skript, ich hätte es eben direkt auf dem Server gesetzt wo die Quelldatei liegt, die dann zu einem anderen FTP Server soll.

Nevermind, jedenfalls danke für deinen Input, ich fuchse mich da mal durch :)
 
SimonK91 schrieb:
Haben wir aneinander vorbei geredet wenn ich dir jetzt sage dass der Server wo die Datei liegt, der gleiche ist als der wo ich dann das PHP Skript eingebaut hätte?
Ja haben wir, hatte ich aber nochmal in meinem 3. Posting (weil du die FTP-Verbindung nur bräuchtest, wenn es so wäre) gesagt:

PrimusFighter schrieb:
Ich habe das so Verstanden, dass das PHP-Script auf einem anderen Server liegt als das eigentliche Ziel, der FTP-Server?!

Wenn das PHP-Script auf dem gleichen Server liegt, musst du ja nur die heruntergeladene Datei dahin schieben wo du sie haben willst. Dafür brauchst du keine FTP Verbindung. Das würde dann mit move_uploaded_file() (für den manuellen Upload) bzw. mit copy() & unlink() bei einer Datei die über curl oder fopen geholt wird.
 
Zurück
Oben