Announcement

Collapse
No announcement yet.

Bilder aus Binärdaten erzeugen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Bilder aus Binärdaten erzeugen

    Hallo zusammen,

    ich möchte hier mein kleines Problem schildern und hoffe das mir jemand bei der Lösung helfen kann.

    Auf einem Server habe ich ein Warenwirtschaftssystem auf Basis einer MSSQL Datenbank. Die Bilder für meine Artikel werden in der DB als Binärdaten gespeichert. Die Warenwirtschaft verfügt über eine Exportfunktion mit der ich die Bilder in ein beliebiges lokales Verzeichnis exportieren kann.

    Für den Internetshop brauche ich die Bilder auf dem Webserver. Derzeit speichere ich erst die Bilder mit der Exportfunktion lokal und schiebe sie dann mit einem FTP-Tool auf den Webserver in das entsprechende Verzeichnis.

    Das möchte ich gern automatisieren. Kann man mit z.B. PHP die Binärdaten aus der DB auslesen und wieder in ein Bild umwandeln?

    Ich habe einen lokalen Webserver installiert der auf beide Datenbänke zugreifen kann (MSSQL auf dem Server - MySQL auf dem Webserver)

    Vielen Dank

    MfG

    René

  • #2
    Die "Binärdaten" sind das Bild. Da ist nichts umzuwandeln. Wozu einen Webserver?

    Schreibe ein Programm, welches die Daten aus der Datenbank liest und in das Verzeichnis des Webservers kopiert.
    Christian

    Comment


    • #3
      Für den Internetshop brauche ich die Bilder auf dem Webserver.
      Kann der Internetshop die Daten nicht on-the-fly von der Datenbank holen?

      So würden Datenredundanzen vermieden und es wäre immer alles aktuell (auf dem Stand der DB).

      mfG Gü
      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

      Comment


      • #4
        Danke für die schnelle Antwort, aber leider löst sie mein Problem nicht.

        Ich stelle die Frage mal anders:

        Wie mache ich aus dem Inhalt des Datenfeldes 'BILD (BLOB)' in meiner Tabelle GRAFIK ein Bild mit einem Namen z.B. 12345.jpg?

        Den Inhalt des Feldes habe ich schon in eine Variable gespeicher, aber wie mache ich daraus eine Bilddatei?

        Gruß René

        Comment


        • #5
          In dem du den Inhalt des Blobs unter dem Namen 12345.jpg in das Filesystem schreibst
          Christian

          Comment


          • #6
            Originally posted by gfoidl View Post
            Kann der Internetshop die Daten nicht on-the-fly von der Datenbank holen?

            So würden Datenredundanzen vermieden und es wäre immer alles aktuell (auf dem Stand der DB).

            mfG Gü
            Hallo, es gibt keine permanente Verbindung zwischen dem lokalem Server und dem Webserver. Die Aktion kann nur von dem lokalen Server aus erfolgen. Ich könnte also ein php-Script lokal starten das die Datenbänke abgleicht. Auf dem Webserver sollen die Bilder aber nicht in der Datenbank sein sondern als jpg-Dateien im Bildverzeichnis liegen, weil auch andere Shopsysteme wie E-Bay und Tradoria auch die Bilder verweisen.

            Mal ganz einfach gesagt brauche ich ein php-Script das durch eine beliebige
            Aktion ausgelöst wird, die Daten der Bilder aus der lokalen DB holt, in ein jpg-Bild umwandelt und in das richtige Verzeichnis des Webservers speichert, wobei der Bildname ist: artikelnummer + '.jpg'.

            MfG

            René

            Comment


            • #7
              Originally posted by Christian Marquardt View Post
              In dem du den Inhalt des Blobs unter dem Namen 12345.jpg in das Filesystem schreibst
              Das ist genau der Punkt, WIE mach ich das

              Comment


              • #8
                Mal ganz einfach gesagt brauche ich ein php-Script das durch eine beliebige
                Aktion ausgelöst wird, die Daten der Bilder aus der lokalen DB holt, in ein jpg-Bild umwandelt und in das richtige Verzeichnis des Webservers speichert, wobei der Bildname ist: artikelnummer + '.jpg'.
                Wo ist das Problem?

                Stelle die Verbindung zur DB her, lese den Blob, speichere ihn auf dem Webserver

                Mal ganz einfach gesagt brauche ich ein php-Script das durch eine beliebige
                Aktion ausgelöst wird
                Was ist eine beliebige Aktion?

                Was hat das mit SQL Anywhere zu tun?

                Wenn du den Blob in einer Variablen hast, brauchst du diese doch nur noch in das Filesystem schreiben:

                http://www.schattenbaum.net/php/datei.php
                Zuletzt editiert von Christian Marquardt; 14.08.2009, 12:57.
                Christian

                Comment


                • #9
                  Danke für den Ling, ich denge das hat mich schon etwas weiter, aber noch nicht zum Ergebnis gebracht.

                  so sieht das php Script aus:

                  $result = mssql_query("select blobkey, BILD, ordnung from BILD");
                  while($res = mssql_fetch_object($result))
                  {
                  $name = substr($res->blobkey,2,11)."_".$res->ordnung.".jpg";
                  $datei = fopen($name,"w+");
                  fwrite($datei, $res->BILD);
                  fclose($datei);
                  }

                  Die Dateien werden auch richtig mit Namen im Verzeichnis erzeugt, aber sie sind leer...
                  alle 4 kb groß... woran kann das liegen???

                  Gruß René

                  Comment

                  Working...
                  X