X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=lib%2FCatalyst%2FEngine.pm;fp=lib%2FCatalyst%2FEngine.pm;h=b377a6345a66f5a81513a12ff5761d21badb89aa;hp=71a743dfccbc35a69a92b8c62196a2bd906728a3;hb=4a62800defdaa16ec1a5bef88f3e639c983b6f1d;hpb=b9d96e27325fd2b5bc7ff2bd28e5c96675b42c7f diff --git a/lib/Catalyst/Engine.pm b/lib/Catalyst/Engine.pm index 71a743d..b377a63 100644 --- a/lib/Catalyst/Engine.pm +++ b/lib/Catalyst/Engine.pm @@ -669,20 +669,25 @@ sub prepare_uploads { my $request = $c->request; return unless $request->_body; + my $enc = $c->encoding; my $uploads = $request->_body->upload; my $parameters = $request->parameters; foreach my $name (keys %$uploads) { + $name = $c->_handle_unicode_decoding($name) if $enc; my $files = $uploads->{$name}; my @uploads; for my $upload (ref $files eq 'ARRAY' ? @$files : ($files)) { my $headers = HTTP::Headers->new( %{ $upload->{headers} } ); + my $filename = $upload->{filename}; + $filename = $c->_handle_unicode_decoding($filename) if $enc; + my $u = Catalyst::Request::Upload->new ( size => $upload->{size}, type => scalar $headers->content_type, headers => $headers, tempname => $upload->{tempname}, - filename => $upload->{filename}, + filename => $filename, ); push @uploads, $u; }