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