I posed this question to the Template Toolkit list and got no response,
so I figured I'd give this list a shot...


---------------------

Hello, below is some code I have in a mod_perl handler that checks to
see if an uploaded image is less than 300 pixels tall or wide.
Everything seems to be working except the fact that the template is not
returning with the proper values processed.  Below is the code and the
err_log output when I output an image that is too wide.


[snip] 
my $upload = $r->upload;
my $type        = $upload->type;
my $fh          = $upload->fh;
my $username    = $r->param('username');


my ($x, $y) = imgsize($fh);
print STDERR Dumper($x);
print STDERR Dumper($y);

unless ($x < 300) {
print STDERR "the greater than works\n";
     # This checks to make sure the image isnt more than 300 x 300
     my %vars = {TOO_WIDE => 1};
     my $config = {
                INCLUDE_PATH => '/moc/html/templates',
                POST_CHOMP => 1,
                EVAL_PERL => 1,
     };

     my $template = Template->new($config) || die "New Template Failed:
$!\n";

        #the process method prints the template out to the browser via
$r
        $template->process('pic_upload.tt2', \%vars, $r) || do {
          $r->log_reason($template->error());
          return SERVER_ERROR;
        };
        return OK;

} # end of X/Y coordinate if

[snip]

The err_log output:

$VAR1 = 310;
$VAR1 = 72;
the greater than works

[end of err_log]

The problem is the template pic_upload.tt2 has this in it:

[% IF TOO_WIDE %]
<font color=red>Your File was too big.  Make it under 30K</font><p> [%
END %]

But that isn't showing up.  I do the almost identical thing immediately
after this if clauses to check if the file's type is a jpeg.  That
works, so I don't understand what I pasted in wrong, or forgot to paste
in.

Mike




Reply via email to