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

Reply via email to