It would appear that you have two non-perl-related choices: either change the Apache configuration so you can serve images from somewhere where the user that the CGI application runs as can write to, or change the permissions on the existing images directory so that you can create files there.

A third option would be to continue to write the files to the non server accessible directory as you currently are and instead of referencing the image directly in your <img /> element you use a small program to output directly with the appropriate header - something like:

#!/usr/bin/perl -T # use strict; use warnings; use File::Spec; use CGI qw(:standard); my $upload_path = '/tmp/upload'; my $filename = param('image'); if ( $filename =~ /([\w.]+\.jpg)$/ ) { $filename = File::Spec->catfile($upload_path, $1); my $image = do { open IMAGE, $filename or die "Bad image $filename $ +!\n"; binmode IMAGE; select IMAGE; local $/; <IMAGE>; }; binmode STDOUT; print STDOUT header('image/jpeg'),$image; } else { print header('text/plain'),"Bad image name - try again"; }
(This is bare bones for testing purposes you might want to make it a bit more robust for production.) And the use <img src="/cgi-bin/image.pl?image=$tag.jpg" /> in your output HTML.

/J\


In reply to Re: CGI-Perl:: Location for saving the GD output by gellyfish
in thread CGI-Perl:: Location for saving the GD output by cool

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.