\x89\x50\x4E\x47\x0D\x0A\x1A\x0A PNG  \x89\x50\x4E\x47\x0D\x0A\x1A\x0A =head1 NAME HTTP::MultiPartParser - HTTP MultiPart Parser =head1 SYNOPSIS $parser = HTTP::MultiPartParser->new( boundary => $boundary, on_header => $on_header, on_body => $on_body, ); while ($octets = read_octets_from_body()) { $parser->parse($octets); } $parser->finish; =head1 DESCRIPTION This class provides a low-level API for processing MultiPart MIME data streams conforming to MultiPart types as defined in L. =head1 METHODS =head2 new $parser = HTTP::MultiPartParser->new( %attributes ); This constructor returns a instance of C. Valid attributes inculde: =over 4 =item * C (Mandatory) boundary => $value The unquoted and unescaped I parameter value from the Content-Type header field. The I parameter value consist of a restricted set of characters as defined in L. DIGIT / ALPHA / "'" / "(" / ")" / "+" / "_" / "," / "-" / "." / "/" / ":" / "=" / "?" =item * C (Mandatory) on_header => $callback->($header) This callback will be invoked when the header of a part has successfully been received. The callback will only be invoked once for each part. =item * C on_header_as => 'unparsed' | 'lines' Defines the C<$header> value for the C callback. =over 4 =item * C Callback invoked with an octet string containing the unparsed header. =item * C Callback invoked with an ARRAY reference, where each element of the array is a header line. Folding whitespace is removed from all lines and header continuation lines are unwrapped. =back =item * C (Mandatory) on_body => $callback->($chunk, $final) This callback will be invoked when there is any data available for the body of a part. The callback may be invoked multiple times for each part. =item * C on_error => $callback->($message) This callback will be invoked anytime an error occurs in the parser. After receiving an error the parser is no longer useful in its current state. =item * C max_preamble_size => 32768 =item * C max_header_size => 32768 =back =head2 parse $parser->parse($octets); Parses the given octets. =head2 finish $parser->finish; Finish the parsing. =head2 reset $parser->reset; Resets the state of the parser. =head2 is_aborted $boolean = $parser->is_aborted; Returns true if an error has occurred in the parser. =head1 DIAGNOSTICS =over 4 =item B<(F)> Usage: %s Method called with wrong number of arguments. =back =head1 SEE ALSO =over 4 =item L =item L =item L =back =head1 SUPPORT =head2 Bugs / Feature Requests Please report any bugs or feature requests through the issue tracker at L. You will be notified automatically of any progress on your issue. =head2 SOURCE CODE This is open source software. The code repository is available for public review and contribution under the terms of the license. L git clone https://github.com/chansen/p5-http-multipartparser =head1 AUTHOR Christian Hansen C =head1 COPYRIGHT Copyright 2012-2017 by Christian Hansen. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.