Bjoern Sterner: Grafik ueber cgi-skript anzeigen

<HTML><HEAD><TITLE>Anzeigen einer Grafik</TITLE></HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<form action="http://localhost/cgi-bin/gdtest.pl" method="POST">
<input type="Submit" name="holen" value="Bild holen">
</form></BODY></HTML>

#!/usr/local/bin/perl

gdtest.pl

use CGI;

create new CGI object

$q = new CGI;

HTML Response Header erzeugen

print $q->header('text/html');

Start der HTML-Seite

print $q->start_html(-title=>'hier kommt (k)ein Kreis', -LINK=>'#A50021', -VLINK=>'#A50021', -ALINK=>'#A50021' );

print $q->img( {src=>'test.jpg',align=>'LEFT'});

Ende der HTML-Seite

print $q->end_html;

Die oben gezeigte HTML-Seite ruft das aufgezeigte
Perlskript auf. Die vom Perlskript zurückgegebene
HTML-Seite zeigt die Grafik test.jpg nicht an.
Auch das Ändern des headers auf image/jpeg bringt
nichts. Warum?

Ich hoffe, jemand kann helfen.

Gruss
Bjoern

  1. Hallo,

    versuchs mal so:
    ---
    open(BILD, $bilddatei) or &fehler;

    Den Header senden...

    print "Content-type: image/jpeg\n\n";

    binmode(BILD); # Hier ist der Knackpunkt!
    binmode(STDOUT);

    while(read(BILD, $puffer, 1024)) {
    print $puffer;
    }
    close(BILD);

    Fehler parieren

    sub fehler{
    print "content-type:text/html\n\n";
    print "Kann Bilddatei nicht öffnen";
    exit;
    }
    ---
    Viele Grüße, Rolf

    1. Hallo,

      versuchs mal so:

      open(BILD, $bilddatei) or &fehler;

      Den Header senden...

      print "Content-type: image/jpeg\n\n";

      binmode(BILD); # Hier ist der Knackpunkt!
      binmode(STDOUT);

      while(read(BILD, $puffer, 1024)) {
      print $puffer;
      }
      close(BILD);

      Fehler parieren

      sub fehler{
      print "content-type:text/html\n\n";
      print "Kann Bilddatei nicht öffnen";
      exit;
      }

      Viele Grüße, Rolf

      Vielen Dank hat mir sehr geholfen.
      Gruss
      Bjoern