$c->req->address( $c->http->address );
}
+=item $c->prepare_input
+
+=cut
+
+sub prepare_input {
+ my $c = shift;
+
+ return unless
+ $c->request->content_length
+ and $c->request->content_type
+ and $c->request->content_type ne 'application/x-www-form-urlencoded'
+ and $c->request->content_type ne 'multipart/form-data';
+
+ $c->request->input( $c->http->request->content );
+}
+
=item $c->prepare_headers
=cut
if ( $parameters{filename} ) {
- my $fh = File::Temp->new;
+ my $fh = File::Temp->new( UNLINK => 0 );
$fh->write( $part->content ) or die $!;
- seek( $fh, 0, 0 ) or die $!;
+ $fh->flush or die $!;
- my $upload = {
- fh => $fh,
+ my $upload = Catalyst::Request::Upload->new(
filename => $parameters{filename},
- size => ( stat $fh )[7],
+ size => ( $fh->stat )[7],
tempname => $fh->filename,
type => $part->content_type
- };
+ );
+
+ $fh->close;
push( @uploads, $parameters{name}, $upload );
- push( @params, $parameters{name}, $fh );
+ push( @params, $parameters{name}, $parameters{filename} );
}
else {
push( @params, $parameters{name}, $part->content );
}
}
}
-
+
$c->req->_assign_values( $c->req->parameters, \@params );
$c->req->_assign_values( $c->req->uploads, \@uploads );
}