Empty file support (rt.cpan ticket #25392)
[catagits/HTTP-Body.git] / lib / HTTP / Body / Parser / MultiPart.pm
index 9f55747..69f2cc5 100644 (file)
@@ -189,16 +189,17 @@ sub parse_body {
 sub handler {
     my ( $self, $part ) = @_;
 
+    my $disposition = $part->{headers}->{'Content-Disposition'};
+    my ($name)     = $disposition =~ / name="?([^\";]+)"?/;
+    my ($filename) = $disposition =~ / filename="?([^\"]+)"?/;
+
     # skip parts without content
-    if ( $part->{done} && $part->{size} == 0 ) {
+    if ( $part->{done} && $part->{size} == 0 && !$filename) {
         return 0;
     }
 
     unless ( exists $part->{name} ) {
 
-        my $disposition = $part->{headers}->{'Content-Disposition'};
-        my ($name)     = $disposition =~ / name="?([^\";]+)"?/;
-        my ($filename) = $disposition =~ / filename="?([^\"]+)"?/;
 
         $part->{name}     = $name;
         $part->{filename} = $filename;