Jörg Schnettker: Grafik übergeben

Hi,

man kann ja per Image Tag eine CGI Datei aufrufen. Wie kann ich aber dann eine Grafikdatei zurück übergeben (So wie es die Grafik Counter machen)?

MfG
Jörg

  1. Hallo Joerg,

    man kann ja per Image Tag eine CGI Datei aufrufen. Wie kann ich aber dann eine Grafikdatei zurück übergeben (So wie es die Grafik Counter machen)?

    um eine vorhandene GIF-Datei in Perl auszugeben:
    print "Location: /pfad/datei.gif";

    Kompliziert wird es natuerlich, wenn Du die Grafik dynamisch erzeugen musst, z.B. fuer aktuellen Zaehlerstand oder dergleichen. Dazu gibt es ein Programm namens Fly, das GIFs aufgrund von Kommandozeilen-Input (prima fuer system-Aufrufe aus Perl) erzeugen kann (http://www.unimelb.edu.au/fly/fly.html). Oder du erzeugst den GIF-Code gleich mit Perl. Dazu kannst du mal in <../../sfarchiv/1999_1/t01835.htm> und <../../sfarchiv/1999_1/t01972.htm> eintauchen.

    viele Gruesse
      Stefan Muenz

    1. Hallo Joerg und Stefan!

      man kann ja per Image Tag eine CGI Datei aufrufen. Wie kann ich aber dann eine Grafikdatei zurück übergeben (So wie es die Grafik Counter machen)?

      ]). Oder du erzeugst den GIF-Code gleich mit Perl. Dazu kannst du mal in <../../sfarchiv/1999_1/t01835.htm> und <../../sfarchiv/1999_1/t01972.htm> eintauchen.

      Wichtig ist in diesem Falle, den Content-Type im Header korrekt anzugeben:
      print "Content-Type: image/gif\n\n";

      Jörk

    2. Hallo Ihr beiden,

      danke für den Tip! Es lief sofort.

      MfG
      Jörg

    3. Hi Stefan,

      um eine vorhandene GIF-Datei in Perl auszugeben:
      print "Location: /pfad/datei.gif";

      das wollen wir doch wohl lieber nicht gelesen haben... :-)

      Bei einem Location-Header muß IMMER ein kompletter Pfad ausgegeben werden, außerdem fehlt das Header-Ende-Zeichen also:

      print "Location: http://deine.domain.de/pfad/datei.gif\n\n";

      Zwar interpretieren die meisten Browser auch relative Pfadangaben, aber in irgendeiner RFC las ich mal etwas darüber, was beinahe nach Morddrohung klang... :-) also lieber gleich richtig, den Pfad absolut angeben. Streng genommen müßte übrigens auch noch davor der Status 302 ausgegeben werden, aber das lassen auch viele Fortgeschrittene weg (bzw. der Server setzt es automatisch). Übrigens erledigt das Modul CGI.pm all diese Feinheiten, nur habe ich mich leider mit der Syntax noch nicht genau beschäftigt, kann also keinen definitiven Quellcode angeben...

      So, das mußte gesagt werden :-)

      Cheatah