Boost C++ Libraries

PrevUpHomeNext

Struct multipart_form_arg

boost::taar::handler::multipart_form_arg — Argument provider that parses a buffered multipart/form-data body.

Synopsis

// In header: <boost/taar/handler/rest_arg.hpp>


struct multipart_form_arg {

  // public member functions
  explicit multipart_form_arg(::boost::taar::handler::description = {});
  std::string name() const;
  std::string const & description() const;
  taar::result< multipart_form > 
  operator()(boost::beast::http::request< boost::beast::http::string_body > const &, 
             matcher::context const &) const;

  // public data members
  std::string description_;
};

Description

The callable parameter is multipart_form (or multipart_form const&). Requests whose Content-Type is not multipart/form-data with a boundary are reported as error::invalid_content_type; a malformed body as error::invalid_request_format. The whole body is buffered under the session's body limit; use multipart_stream_arg for large uploads.

rest([](taar::multipart_form form)
{
    auto title = form.value("title").value_or("");
    auto const* file = form.find("attachment");
    return std::to_string(file ? file->data.size() : 0);
}, multipart_form_arg {});

multipart_form_arg public member functions

  1. explicit multipart_form_arg(::boost::taar::handler::description d = {});
  2. std::string name() const;
  3. std::string const & description() const;
  4. taar::result< multipart_form > 
    operator()(boost::beast::http::request< boost::beast::http::string_body > const & request, 
               matcher::context const &) const;

PrevUpHomeNext