billabong: PHP Remote Upload

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.

  1. 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

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
    1. bei file_get_contents wird die Datei doch erst wieder auf meinen Server zwischengespeichert, oder?

      1. 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

        --
        Light travels faster than sound - that's why most people appear bright until you hear them speak.
        1. 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.

          1. 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

            --
            Nur selber lernen macht schlau
            http://bergpost.annerschbarrich.de
            1. Was jetzt genau ein RP-Auftrag ist weiß ich nicht,
              aber ich denke du hast mich richtig verstanden.

              mfg

              1. 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

                --
                Nur selber lernen macht schlau
                http://bergpost.annerschbarrich.de
                1. 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

                  1. 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.

                    1. 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

                2. 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.

                  1. 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

                  2. 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

                    --
                    Light travels faster than sound - that's why most people appear bright until you hear them speak.
          2. 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

            --
            Light travels faster than sound - that's why most people appear bright until you hear them speak.