In my startup.pl file I have the following: use Apache2::Request; use Apache2::RequestRec; use Apache2::RequestUtil; use Apache2::Connection; use Apache2::Cookie; use Apache2::Const -compile => qw(DECLINED FORBIDDEN OK); use Apache2::Upload;
Maybe you need the Apache2::RequestRec/Util modules. -Bil On Nov 16, 2006, at 7:02 AM, fixed wrote: > Thank you very much for your reply. > > This is odd - I have the exact same setup as you and this is what I > did: > > if ( exists $ARGS{'file'} ) { > my $upload = $r->upload('file'); > .... > } > > But I get this error: > > 'Can't locate object method "upload" via package > "Apache2::RequestRec"' > > I even put the use Apache2::Upload in there to no avail. > > In my handler.pl, I have: > > use Apache2::Request; > use Apache2::Upload; > > Any suggestions? > > Thanks > > Ogden > > On Wed, 15 Nov 2006, Bill Walz wrote: > >> Ogden, My setup is as follows along with the following in my >> httpd.conf >> >> PerlSetVar MasonArgsMethod mod_perl >> PerlOptions +GlobalRequest >> >> Apache2 2.2.3 >> Perl 5.8.8 >> Mod Perl2 2.0.2 >> Lib APR2 2.08 >> Mason 1.35 >> >> Here is the init section of my component, the name of my file input >> tag is "userfile", yours was "file". This is not exactly safe as the >> file could be huge. And I could not get the size() function to work, >> when needed I use approximate value from: $ENV{CONTENT_LENGTH} >> >> <%init> >> # handle upload if requested >> if (exists $ARGS{'b_upload'}) { >> >> # create an Apache2::Upload object >> my $upload = $r->upload('userfile'); >> >> if ($upload) { >> # get a filehandle for uploaded file >> my $upload_fh = $upload->fh; >> >> # binmode >> binmode $upload_fh; >> >> # suck in file >> my $file_data = join('',<$upload_fh>); >> >> ....... SNIP ....... >> >> </%init> >> >> -Bill >> >> On Nov 15, 2006, at 5:26 PM, Ogden wrote: >> >>> Hi, >>> >>> I'm trying to allow files to be uploaded through Mason. My setup >>> is as >>> follows: >>> >>> Apache 2.2.3 >>> Mason 1.3.4 >>> mod_apreq2 20051231/2.6.0 >>> mod_perl 2.0.2 >>> >>> >>> The following is my code: >>> >>> <form METHOD="POST" ENCTYPE="multipart/form-data"> >>> <input type="file" name="file"> >>> <input type="submit"> >>> </form> >>> Mason Version: <% $HTML::Mason::VERSION %><br> >>> <%perl> >>> use Apache2::Upload; >>> my $content = ''; >>> >>> my $req = Apache2::Request-> new($r); >>> my $upload = $req-> upload("file"); >>> my $size = $upload-> size; >>> >>> $upload-> slurp($content); >>> </%perl> >>> >>> >>> <form METHOD="POST" ENCTYPE="multipart/form-data"> >>> <input type="file" name="file"> >>> <input type="submit" name="action" value="Upload" /> >>> </form> >>> Mason Version: <% $HTML::Mason::VERSION %><br> >>> <%perl> >>> >>> if ( $action eq 'Upload' ) { >>> >>> use Apache2::Upload; >>> my $content = ''; >>> my $req = Apache2::Request-> new($r); >>> my $upload = $req-> upload("file"); >>> my $size = $upload-> size; >>> $upload-> slurp($content); >>> >>> } >>> </%perl> >>> >>> After reading online, it seems I have to add this to my httpd.conf: >>> >>> PerlSetVar MasonArgsMethod mod_perl >>> >>> Which I did. The file upload process still quits with a "End of file >>> found" error. >>> >>> How can I confirm that mod_perl is actually being set to >>> MasonArgsMethod? >>> Do I put anything special into handler.pl, which is: >>> >>> my $ah = new HTML::Mason::ApacheHandler( comp_root => '/opt/local/ >>> apache2/htdocs/', >>> data_dir => '/opt/local/ >>> mason-data', >>> allow_globals => ['$dbh', >>> '%session']); >>> >>> sub handler { >>> my $r = shift; # Apache request object >>> my $status; >>> return $ah->handle_request($r); >>> >>> } >>> >>> Any ideas? >>> >>> Thank you >>> >>> Ogden >>> >>> >>> -------------------------------------------------------------------- >>> -- >>> --- >>> Take Surveys. Earn Cash. Influence the Future of IT >>> Join SourceForge.net's Techsay panel and you'll get the chance to >>> share your >>> opinions on IT & business topics through brief surveys - and earn >>> cash >>> http://www.techsay.com/default.php? >>> page=join.php&p=sourceforge&CID=DEVDEV >>> _______________________________________________ >>> Mason-users mailing list >>> Mason-users@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/mason-users >> > > ---------------------------------------------------------------------- > --- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to > share your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php? > page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Mason-users mailing list > Mason-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/mason-users ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Mason-users mailing list Mason-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mason-users