Forgive my poor perl and understanding of how this works!
I'm trying to grab images from a form, using libapreq2, and I'm seeing this error :
[Sun Nov 07 10:52:34 2004] [error] Can't locate object method "upload" via package "Apache::RequestRec" at /home/benfab/lib/BF.pm line 135.\n
I've a library I'm writing, BF.pm, that has the following two subroutines in it :
sub hash_post { # returns a hash of all the POST values
use Apache::Request; use Apache::Upload;
my ($r) = shift;
my %rethash = {};
my $req = Apache::Request->new($r); my @param_names = $req->param; foreach my $value (@param_names) { $rethash{$value} = $req->param($value); }
return %rethash; }
sub get_uploaded_image { my ($name, $max_size, $r) = @_;
use Apache::Upload;
my $upload = $r->upload($name); print STDERR $upload->filename(); }
They're pretty crude, but hash_post does what I need (any suggestions for improvemend gladly accepted!). I'm working on the get_uploaded_image() at the moment (as you can see, it doesn't do anything yet!)
I've declared $r in my calling script, and I'm not sure if I need to declare it again in the subroutines?
The calling script looks like this :
my $r = Apache->request; $r->content_type("text/html");
use lib qw(/home/benfab/lib);
use BF; use Template; use Data::Dumper; use strict;
.
.
.
my %posted_data = BF::hash_post($r);
my $upload = BF::get_uploaded_image("small_image", $BF::small_image_size, $r);
If I change my subroutine to this :
sub get_uploaded_image { my ($name, $max_size, $r) = @_;
use Apache::Upload;
my $req = Apache::Request->new($r); my $upload = $req->upload($name); print STDERR $upload->filename(); }
It starts to work, but I don't understand why I need to declare $req again here? I want to keep my form parsing image stuff seperate, as not all my pages will have images to load, am I doing this the 'best' way?
thanks!
Carl
-- Report problems: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html