Ankündigung

Einklappen
Keine Ankündigung bisher.

fopen, copy, file_get_contents mit Dateien aus DB

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • fopen, copy, file_get_contents mit Dateien aus DB

    Hallo.

    Ich habe folgendes Problem:

    Ich muss Dateien (genauer Bilder) aus einem Dateisystem auslesen, sie kopieren und woanders abspeichern können. Wenn die Dateien normale Pfade im Stile von "../images/bla/test.jpg" hätten, wär das kein Problem.

    Meine Bilder werden aber mit Pfaden im Stile von "http://www.testseite.de/imagetool/?_id=c629b2a9e7def98e2823567908e3b8a3" ausgelesen. Und damit funktionieren die ganzen Befehle wie fopen, copy, file_get_contents, etc. nicht.

    Weiss jemand wie man solche Dateien irgendwie ansprechen und enstsprechend weiterverarbeiten kann?

  • #2
    Was bekommst du denn beim Aufruf der URL zurück?

    fopen und Ko können auch mit URL's umgehen (bei entsprechender Konfiguration)
    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

    Kommentar


    • #3
      Irgendwie muss die Anwendung ja die ID auch auf eine konkrete Resource übersetzen. Diesen Weg musst DU eben auch gehen.
      [COLOR="#F5F5FF"]--[/COLOR]
      [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
      [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
      [COLOR="#F5F5FF"]
      --[/COLOR]

      Kommentar


      • #4
        Zitat von lstegelitz Beitrag anzeigen
        Was bekommst du denn beim Aufruf der URL zurück?
        Naja, als Beispiel für einen Bildlink:

        http://www.shopdirekt.ch/assistant/g...41494d17f1abbb

        (die Seite verwendet nur das selbe System, gehört mir also nicht )

        Zitat von nikosch Beitrag anzeigen
        Irgendwie muss die Anwendung ja die ID auch auf eine konkrete Resource übersetzen. Diesen Weg musst DU eben auch gehen.
        Das ist aber halt das von mir verwendete System, ich hab keinen Einblick auf die internen Funktionen davon.

        Kommentar


        • #5
          Sofern du allow_url_fopen=on hast, kannst du die URL per fopen() öffnen und dann ganz normal mit fwrite() auf die lokale Festplatte speichern. Ab dort hantierst du weiter mit lokalen Dateinamen.

          Wenn der Server (www.shopdirect.ch) nicht deiner sein sollte, ist das deine einzige Möglichkeit. Hattest du vor, die Dateien "remote" zu verändern/verschieben, muss ich dich enttäuschen, das geht nämlich nicht. HTTP ist eine Einbahnstraße
          Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

          Kommentar


          • #6
            Zitat von lstegelitz Beitrag anzeigen
            Sofern du allow_url_fopen=on hast, kannst du die URL per fopen() öffnen und dann ganz normal mit fwrite() auf die lokale Festplatte speichern. Ab dort hantierst du weiter mit lokalen Dateinamen.

            Wenn der Server (www.shopdirect.ch) nicht deiner sein sollte, ist das deine einzige Möglichkeit. Hattest du vor, die Dateien "remote" zu verändern/verschieben, muss ich dich enttäuschen, das geht nämlich nicht. HTTP ist eine Einbahnstraße
            Ne, sry, war missverständlich ausgedrückt. Der Link sollte nur zeigen, wie so ein Dateilink aussieht, das Ganze hat nichts mit der URL shopdirekt.ch zu tun, ich wollte nur nicht meine eigene URL hier posten, sonst werden meine Vorgesetzten mal noch sauer, wenn sie das sehen. ;

            Im Grunde gehts eigentlich nur darum, dass ich diese Dateien schlussendlich per getimagesize(), etc. auswerten kann. Das geht aber eben nur mit Dateien, die auch direkt via Pfad ansteuerbar sind und dafür wiederrum muss ich eben die Systemdateien entsprechend auslesen und in ein temp-Verzeichnis kopieren...

            Kommentar


            • #7
              Das ist aber halt das von mir verwendete System, ich hab keinen Einblick auf die internen Funktionen davon.
              Dann hast Du ein Problem. Denn vermutlich ist genau das das Ziel der Aktion mit dem URL Aufruf. Unter anderem wird dort gesteiuert werden, welches Produkt public ist etc.
              [COLOR="#F5F5FF"]--[/COLOR]
              [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
              [COLOR="#F5F5FF"]
              --[/COLOR]

              Kommentar


              • #8
                Es muss doch irgendeinen Weg geben, dieses Bild trotzdem rauszufiltern und entsprechend wonaders abzuspeichern. :/

                Kommentar


                • #9
                  Hä? Was willst du filtern?

                  Du hast exakt 2 Möglichkeiten:
                  1.) Das Bild liegt in einem Pfad, den du vom Internet aus direkt erreichen kannst. Du kannst eine URL bilden, mit der du auf das Bild zugreifen kannst, es wird ausgeliefert vom Webserver.

                  2.) Das Bild liegt ausserhalb des Webserver-Roots, es wird über eine PHP Funktion ausgeliefert. Eine Identifikation ist unabdingbar.

                  In beiden Fällen hast du die Bilddaten nach dem Aufruf, in beiden Fällen solltest du es lokal speichern, z.B. wenn du es verändern willst - Änderungen AUF dem entfernten Rechner sind über das HTTP Protokoll nicht möglich!
                  Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                  Kommentar


                  • #10
                    Er kommt doch an die Skripte nicht ran.
                    Woher soll er dann wissen, was bei einem Link passiert, bei dem eine ID per URL mitgegeben wird und das Skript daran entscheidet, welches Bild geladen werden soll?!

                    Ich weiß allerdings nicht, was passiert, wenn man z.B. mit curl die URL anfordert und das Ergebnis als Bilddatei ablegt?!
                    Kann sein, daß das gar nicht funktioniert, is nur grad mal ne Idee...
                    Competence-Center -> Enjoy the Informatrix
                    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                    Kommentar


                    • #11
                      Zu 1) bzw. curl. Sowas, um imagesize zu bestimmen? Na ich weiß nicht. Da stimmt doch das Grundprinzip schon nicht.
                      [COLOR="#F5F5FF"]--[/COLOR]
                      [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                      [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                      [COLOR="#F5F5FF"]
                      --[/COLOR]

                      Kommentar


                      • #12
                        Zitat von nikosch
                        Sowas, um imagesize zu bestimmen?
                        Anforderung war:
                        Ich muss Dateien (genauer Bilder) aus einem Dateisystem auslesen, sie kopieren und woanders abspeichern können.
                        Aber wie gesagt, bin selbst nicht sicher, ob das über curl so realisierbar ist...
                        Competence-Center -> Enjoy the Informatrix
                        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                        Kommentar


                        • #13
                          Hmm, naja, bin jetzt davon ausgegangen:
                          Im Grunde gehts eigentlich nur darum, dass ich diese Dateien schlussendlich per getimagesize(), etc. auswerten kann. Das geht aber eben nur mit Dateien, die auch direkt via Pfad ansteuerbar sind und dafür wiederrum muss ich eben die Systemdateien entsprechend auslesen und in ein temp-Verzeichnis kopieren...
                          [COLOR="#F5F5FF"]--[/COLOR]
                          [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                          [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                          [COLOR="#F5F5FF"]
                          --[/COLOR]

                          Kommentar


                          • #14
                            Ah ja... Dann siehts anders aus.
                            Meinst' denn das würde überhaupt per curl und tmpfile() funktionieren?
                            Mal von dem Umstand abgesehen?

                            Also per curl die url in ein Temp-File lesen und mit getimagesize auswerten?
                            Competence-Center -> Enjoy the Informatrix
                            PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                            Kommentar


                            • #15
                              Mh, also..

                              Es funktioniert jetzt doch mit fopen auf die entsprechenden Dateien zuzugreifen, der Serveradmin hat da irgendwas umgestellt (meinte er jedenfalls..), damit kann ich die Dateien so auslesen und via fwrite in ein lokales File schreiben.

                              Funktioniert bei zu grossen Dateien aber noch nicht (mehrere MB gross), aber wird schon irgendwie gehen schlussendlich.

                              Jedenfalls danke für eure Hilfe.

                              Kommentar

                              Lädt...
                              X