PHP Remote Upload
billabong
- php
Folgende Problemstellung,
ich habe ein Formular welches einen Datei-Upload ermöglicht und als "action", sprich Ziel eine Url enthält die nicht auf dem selben Server liegt.
Nun suche ich nach einer Möglichkeit es zu bewerkstelligen eine Datei hochzuladen indem man nur eine direkte Url eines dritten Servers angibt.
Die Datei soll dann vom dritten Server direkt ohne zwischen-Weg auf den Client oder Server zum Empfänger im action Attribut des Formulars wandern.
Hi,
Nun suche ich nach einer Möglichkeit es zu bewerkstelligen eine Datei hochzuladen indem man nur eine direkte Url eines dritten Servers angibt.
file_get_contents im einfachsten Falle, wenn allow_url_fopen aktiviert ist.
Ansonsten, oder auch wenn du mehr Möglichkeiten haben willst auf diverse Fehlerquellen zu reagieren, GET-Request per fsockopen etc. selber machen.
MfG ChrisB
bei file_get_contents wird die Datei doch erst wieder auf meinen Server zwischengespeichert, oder?
Hi,
bei file_get_contents wird die Datei doch erst wieder auf meinen Server zwischengespeichert, oder?
Auf dem, auf dem es läuft, ja.
Ist dieser etwa nicht deiner, kannst du dort keine eigenen Scripte unterbringen? Dann hättest du das in deiner Problembeschreibung erwähnen sollen.
MfG ChrisB
Ok um das ganze noch einmal zu veranschaulichen:
Server1 - Datei - kein Zugriff
Server2 - Formular - Zugriff
Server3 - "Formular Empfänger - kein Zugriff
Auf Server 2 befindet sich ein Formular mit einem Datei Feld.
Server 3 ist sozusagen der Empfänger des Formulars auf ihm soll die Datei am Ende sein.
Nun geht es darum das Formular bzw. den HTTP Request so hinzubekommen das Server 3 die Datei direkt von Server 1 holt.
Sozusagen ein file Feld eines Formulares das nicht mit einem lokalen Dateipfad sondern einer Url gefüttert wird.
Hello,
Sozusagen ein file Feld eines Formulares das nicht mit einem lokalen Dateipfad sondern einer Url gefüttert wird.
Du willst also keinen Fileupload per Post-Request vornehmen, sondern einen RP-Auftrag geben, der dann zu einen Ressource- oder Filedownload führt.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Was jetzt genau ein RP-Auftrag ist weiß ich nicht,
aber ich denke du hast mich richtig verstanden.
mfg
Hello,
Was jetzt genau ein RP-Auftrag ist weiß ich nicht,
aber ich denke du hast mich richtig verstanden.
Remote Procedure Call
Du willst den entfernten Server azu bewegen, eine (vorbereitete) Aufgabe zu erledingen, wenn ein bestimmtes Ereignis eintritt. Das Ereignis ist hier der Post-Request.
Das ist sicherlich auch nicht so ganz ungefährlich. Da sollte man sehr genau nachdenken, was man gestattet und wie man dies auch überprüft.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hallo Tom,
Remote Procedure Call
Das ist sicherlich auch nicht so ganz ungefährlich. Da sollte man sehr genau nachdenken, was man gestattet und wie man dies auch überprüft.
vor allem sollte man nachdenken, ob man sowas tun kann, wenn man *keine* Zugriff auf den Rechner hat, auf dem der RPC ausgeführt werden soll.
Sprich: mindestens einer der fremden Server-Admins müsste mitspielen, wenn der eigene (fast) völlig unbeteiligt bleiben soll :-)
Freundliche Grüße
Vinzenz
Ich denke ihr versteht mich noch immer falsch.
Ich benötige einfach einen "Dateizeiger" der anstatt auf eine Datei auf meiner Festplatte auf eine Datei auf einem Server zeigt.
Hallo,
Ich denke ihr versteht mich noch immer falsch.
ich denke nicht :-)
Ich benötige einfach einen "Dateizeiger" der anstatt auf eine Datei auf meiner Festplatte auf eine Datei auf einem Server zeigt.
Wenn Du mit Deinem Browser einen normalen Fileupload durchführst, dann schickt Dein netter Browser den *Inhalt* der ausgewählten Datei an das Zielskript, nicht etwa einen "Dateizeiger".
Wenn das verarbeitende Skript keine Logik dafür hat, um mit einer URL umzugehen, dann kannst Du Dein Vorhaben mit diesem Zielskript - auf das Du nach Deiner Aussage keinen Einfluß hast - nicht umsetzen.
Freundliche Grüße
Vinzenz
Ich will ihm eigentlich nur mitteilen das sich eine Datei die er ansonsten per Post von einer lokalen Festplatte erhalten würde auf einem anderen Server befindet.
Hallo,
Ich will ihm eigentlich nur mitteilen das sich eine Datei die er ansonsten per Post von einer lokalen Festplatte erhalten würde auf einem anderen Server befindet.
dann muss sich ganz einfach auf dem von Dir nicht kontrollierten Server ein Skript befinden, das damit etwas anfangen kann.
Gibt's das nicht, dann geht das nicht.
Freundliche Grüße
Vinzenz
Hi,
Ich will ihm eigentlich nur mitteilen das sich eine Datei die er ansonsten per Post von einer lokalen Festplatte erhalten würde auf einem anderen Server befindet.
Dass der eine Gesprächspartner etwas mitteilt, ist das eine - das andere ist dann, dass das Gegenüber diese Mitteilung auch verstehen können muss.
Und an letzerem hapert es derzeit sowohl in deinem Szenario, als auch in dieser Unterhaltung.
MfG ChrisB
Hi,
Nun geht es darum das Formular bzw. den HTTP Request so hinzubekommen das Server 3 die Datei direkt von Server 1 holt.
Server 3 wird sich überhaupt nichts "holen" - er wartet lediglich darauf, dass ihm etwas *gebracht* wird.
Und wenn er lediglich ein Script zur Verfügung stellt, dass einen Datei-Upload per HTTP verarbeitet - dann wirst du auch einen solchen machen müssen.
Und wenn du den nicht von Server 1 aus machen kannst - dann bleibt dir nur der Umweg über deinen Server 2.
MfG ChrisB