PHP FTP Download

PEASANT KING

Commander
Registriert
Okt. 2008
Beiträge
2.412
Hallo Leute,

ich habe mal eine Frage an der ich schon Stunden sitze.
Ist es möglich mittels PHP Script eine Datei von einem Remote Server runter zu laden und direkt in ein Verzeichnis auf meinen lokalen Rechner zu schieben.

Denn die Funktion ftp_get() tut dies nicht, im Gegenteil, beim ausführen des Scripts läd sie die Datei runter und speichert sie auf dem Remote Server wieder ab anstatt lokal bei mir auf dem Rechner.

Ich stehe wirklich auf dem Schlauch.
Die Sicherheitsaspekte lassen wir mal aussen vor.
 
Ich nehme mal an, das soll passieren wenn der User etwas anklickt?

Warum dann nicht einfach den Link zum FTP Server direkt in den HTML Teil einbetten?
 
Es geht um eine Schnittstelle die ich programmiere zwischen einem Onlineshop und einer Warenwirtschaft.

@soares die Links sind super toll, kenn ich allerdings schon alles...
Vielleicht verstehe ich nur nicht ganz die Funktion von FTP unter PHP. Ziel ist es einfach wenn das PHP Script aufgerufen wird durch einen Browser, dass eine Datei vom Server direkt auf den Clientrechner gelangt.
Im Moment mittels FTP.
Ich dachte das könnte man in PHP realisieren, mit ner simplen Batch, gekoppelt mit nem VBS geht es ja auch.

Ja richtig @herrhannes, daher die Frage ob es denn eine Möglichkeit gibt.
 
Wenn dann nur per Java Applet. JavaScript hat ebenfalls keinen direkten Zugriff auf das lokale Dateisystem. PHP wird auch nicht lokal ausgeführt.
 
Sollte aber gehen mit PHP. Grober Ablauf:
ftp_get holt die Datei (vom fremden Server auf den PHP-Server), lagert sie kurz bei sich, liest sie wieder ein und gibt sie, nachdem ein passender Header an den Client gesendet wurde, per echo (oder was passenderem) aus.
 
Werd ich wohl nicht um Java rum kommen, ausgelesen per echo ausgegeben bringt mir die Geschichte nichts.
Es handelt sich nämlich um Dateien im CSV Format, zum Import in eine MSSQL Datenbank die lokal auf dem Client liegt.
 
herrhannes schrieb:
Jo exakt. Der Webserver hat nämlich garantiert keinen Zugriff auf deinen PC.

doch!

wenn du etwas auf deinem rechner gespeichert haben willst musst du nur ermöglichen das man dort von außen zugreifen kann! z.B. webserver, ftp server etc.
(zur not auch ein php script welches daten per POST empfängt oder per fileupload)
(sei froh das man nicht einfach so auf deinen rechner zugreifen kann, wenn du es nicht explizit erlaubst :p)

dann per ftprunterladen, auf deinen lokalen clienten connecten und wieder hochladen.
dafür ist php aber nur bedingt geeignet.

wenn du die csv datein in eine db knallen willst, wieso erlaubst du dann keinen remotezugriff auf die db und beschränkst dich auf die ip von dem webserver, der die datein runterlädt? die wird ja wohl immer gleich sein.

noch etwas: wieso muss du den umweg über einen server gehen? sonst lass auf dem clienten nen webserver laufen der php kann und führe das script lokal aus, violá schon hast du zugriff auf das lokale datei system

bzw. dein lokales php script kann ja, wie von daaron vorgeschlagen, ja die php datei aufrufen, die die csv datei ausggeben hat, wieder einlesen und speichern.

allerdings ist das dann wirklich nicht mehr so ganz das, wofür php gedacht ist
 
Zuletzt bearbeitet:
DJ_We$t schrieb:
Werd ich wohl nicht um Java rum kommen, ausgelesen per echo ausgegeben bringt mir die Geschichte nichts.
Es handelt sich nämlich um Dateien im CSV Format, zum Import in eine MSSQL Datenbank die lokal auf dem Client liegt.

Es ist doch SCHNURZ, ob es ne JPG, ne CSV, ne DOCX, ne AVI oder sonstwas ist. Am Ende sind es alles nur Binärdaten, was der empfangende Browser damit macht entscheidet sich einzig und allein am Header!
Genauso, wie du aus beliebigen Daten in PHP eine JPG zusammenfügen und als Bild in einer Webseite darstellen kannst, und genauso wie du in PHP eine PDF zum Download generieren kannst, kannst du auch eine CSV generieren. Du musst nur den richtigen Header senden, bevor du die Binärdaten rauspumpst.

Aber: Es ist bekloppt, mit Server A eine CSV von Server B zu holen und an Client C zum schicken, wenn C die Daten dann doch in eine Datenbank einpflegen will. Dafür gibt es weit bessere Ansätze.
 
Leider funktioniert aber der Externe Zugang zur Datenbank nicht, blöd bin ich nicht, ich weiß das ein externer Zugang gegeben ist.
Dennoch wird mir der Zugang trotz korrekter Daten, vom MySQL Server verwehrt.
Ich steige warscheinlich auf Java um. Vielen Dank trotzdem für eure Hilfe.
 
wieso sollte der externe in zugang denn in Java und nicht mit Php gehen?

Geht das eine muss auch das andere funktionoieren, dann liegt er Fehler irgendwo anders, aber nicht in der verwendeten sprache.
 
Zurück
Oben