Form¶
Forms are accessed through the context using ctx.form() method.
Forms submitted in POST request can be url encoded or multipart. Different form parsing techniques are used by udho::urlencoded_form and udho::multipart_form.
API¶
udho::form¶
-
template<typename
RequestT>
structudho::form_ unified form accessor that can extract field from both urlencoded as well as multipart forms.
Public Functions
-
void
parse_urlencoded() parse the beast request body as urlencoded form data
-
void
parse_multipart() parse the beast request body as multipart form data
-
bool
is_urlencoded() const check whether the submitted form is urlencoded
-
bool
is_multipart() const check whether the submitted form is multipart
-
const urlencoded_form<std::string::const_iterator> &
urlencoded() const return the urlencoded specific form accessor
-
const multipart_form<std::string::const_iterator> &
multipart() const return the multipart specific form accessor
-
bool
parsed() const returns true once the form is parsed
-
bool
has(const std::string &name) const checks whether the form contains any field with matching name
- Parameters
name: name of the form field
-
template<typename
V>
Vfield(const std::string &name) const returns a form field object for a given field
-
fields_map_type::size_type
count() const returns number of fields in the form
-
void
udho::urlencoded_form¶
-
template<typename
Iterator>
structudho::urlencoded_form Form accessor for urlencoded forms
Public Functions
-
std::size_t
count() const number of fields in the form
-
bool
has(const std::string name) const checks whether there exists any field with the name provided
-
template<typename
T>
const Tfield(const std::string &name) const returns the value of the field with the name provided lexically casted to type T
-
std::size_t
udho::multipart_form¶
-
template<typename
Iterator>
structudho::multipart_form Form accessor for multipart forms
Public Functions
-
std::size_t
count() const number of fields in the form
-
bool
has(const std::string name) const checks whether the form has any field with the given name
-
const form_part &
part(const std::string &name) const returns the part associated with the given name
-
template<typename
T>
const Tfield(const std::string &name) const returns the value of the field lexically casted with the desired type
form.field<int>("age");
-
struct
form_part A part in the multipart form data
Public Functions
-
const bounded_string_type &
header(const std::string &key) const returns the value associated with the key in the header of the part
header("Content-Disposition").copied<std::string>();
-
bounded_string_type
header(const std::string &key, const std::string &sub) const returns the value associated with the key and sub key in the header of the part
header("Content-Disposition", "name").copied<std::string>();
-
bounded_string_type
name() const name of the part
name().copied<std::string>();
-
bounded_string_type
filename() const filename of the part
name().copied<std::string>();
-
const bounded_string_type &
body() const body of the part returned as a pair of string iterators
body().copied<std::string>();
-
std::string
str() const returns the body of the part as string
-
template<typename
T>
Tvalue() const lexically convert the contents of the body to the requested type
-
const bounded_string_type &
-
std::size_t