Provided by: libmojolicious-perl_6.15+dfsg-1ubuntu1_all bug

NAME

       Mojo::Content::MultiPart - HTTP multipart content

SYNOPSIS

         use Mojo::Content::MultiPart;

         my $multi = Mojo::Content::MultiPart->new;
         $multi->parse('Content-Type: multipart/mixed; boundary=---foobar');
         my $single = $multi->parts->[4];

DESCRIPTION

       Mojo::Content::MultiPart is a container for HTTP multipart content based on RFC 7230
       <http://tools.ietf.org/html/rfc7230>, RFC 7231 <http://tools.ietf.org/html/rfc7231> and
       RFC 2388 <http://tools.ietf.org/html/rfc2388>.

EVENTS

       Mojo::Content::Multipart inherits all events from Mojo::Content and can emit the following
       new ones.

   part
         $multi->on(part => sub {
           my ($multi, $single) = @_;
           ...
         });

       Emitted when a new Mojo::Content::Single part starts.

         $multi->on(part => sub {
           my ($multi, $single) = @_;
           return unless $single->headers->content_disposition =~ /name="([^"]+)"/;
           say "Field: $1";
         });

ATTRIBUTES

       Mojo::Content::MultiPart inherits all attributes from Mojo::Content and implements the
       following new ones.

   parts
         my $parts = $multi->parts;
         $multi    = $multi->parts([]);

       Content parts embedded in this multipart content, usually Mojo::Content::Single objects.

METHODS

       Mojo::Content::MultiPart inherits all methods from Mojo::Content and implements the
       following new ones.

   body_contains
         my $bool = $multi->body_contains('foobarbaz');

       Check if content parts contain a specific string.

   body_size
         my $size = $multi->body_size;

       Content size in bytes.

   build_boundary
         my $boundary = $multi->build_boundary;

       Generate a suitable boundary for content and add it to "Content-Type" header.

   clone
         my $clone = $multi->clone;

       Clone content if possible, otherwise return "undef".

   get_body_chunk
         my $bytes = $multi->get_body_chunk(0);

       Get a chunk of content starting from a specific position. Note that it might not be
       possible to get the same chunk twice if content was generated dynamically.

   is_multipart
         my $bool = $multi->is_multipart;

       True, this is a Mojo::Content::MultiPart object.

   new
         my $multi = Mojo::Content::MultiPart->new;
         my $multi
           = Mojo::Content::MultiPart->new(parts => [Mojo::Content::Single->new]);
         my $multi
           = Mojo::Content::MultiPart->new({parts => [Mojo::Content::Single->new]});

       Construct a new Mojo::Content::MultiPart object and subscribe to "read" event with default
       content parser.

SEE ALSO

       Mojolicious, Mojolicious::Guides, <http://mojolicio.us>.