In other words: The image is damaged on the way to the browser. Save the broken image in the browser, open the saved image in a TEXT editor, and look at what your code really sent to the browser.

Looking at your code, it seems the image is not sent to the browser at all. Instead, it is written to a file named output.png. Your code also does not send out any CGI headers. The code lacks all error checks, for the file operations (open, hint: autodie), and for DBI operations (hint: RaiseError => 1).

You should use the three-argument form of open, it has fewer surprises; and use a variable instead of a bareword. (Hint: open my $file,'>','output.png' or die "Can't open output.png: $!";.)

The CGI::Carp option warningsToBrowser inserts HTML data into the output at random locations, and it gives attackers unwanted insights into your code. Remove it from production code. The CGI::Carp option fatalsToBrowser appends CGI headers and HTML data to the output, even if you have already sent CGI headers and data. It also gives attackers unwanted insights into your code. Remove it from production code. Make sure that your code can't die after writing the first CGI header.

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)

In reply to Re^3: displaying BLOB from Oracle : help by afoken
in thread displaying BLOB from Oracle : help by sdj

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.