[Catalyst] error in reading filehandler when creating thumbnails

Tanya taninat at gmail.com
Wed Nov 16 15:49:46 GMT 2011


hello,

=head2 generate_thumbnail

We tried to create an image gallaery for my photos with catalyst. Few
image files were uploaded and in database columns named 'path' in a
table named  'photos'.  The schema of the database is named  'photo'.
After 'stashing' the contents of the table 'photo', when trying to
process the data from the 'stash'  to create 'thumbnails' using the
following methods which is failing at the 'read statement.. It says
"callback parameter missing" Can someone help me solve this please?
Thankyou.

=cut

sub generate_thumbnail : Chained('get_photos') PathPart('thumbnail') Args(0) {
        my ( $self, $c, $path, $fh, $photos ) = @_;
        my $photos = $c->stash->{photos};
        my $size  = $self->thumbnail_size;
        my $mimeinfo = File::MimeInfo->new;
        my $data = open($fh,"> $photos->$path") or die "Error: $!";
        my $img = Imager->new;
        my ($max_width, $max_height, $max_bytes) =
               Imager->get_file_limits();

#------Giving error at read statement -------  Any suggestions? ----****

#       $img->read(callback => \&read_callback) or die;
         $img->read( $fh => $data,  type => 'jpg') or die $img->errstr;


        my $scaled = $img->scale( xheight => $size );
        my $out;
        $scaled->write(
            type => $mimeinfo->extensions( $photos->mime ),
            data => \$out
          )
          or die $scaled->errstr;
        $c->res->content_type( $photos->mime );
        $c->res->content_length( $out );
        $c->res->header( "Content-Disposition" => "inline; filename="
              . $mimeinfo->extensions( $photos->mime ) );

        binmode $out;
        $c->res->body($out);

}

CHEERS :-) TANYA


More information about the Catalyst mailing list