pub struct Multipart<R> { /* private fields */ }
Expand description
The server-side implementation of multipart/form-data
requests.
Implements Borrow<R>
to allow access to the request body, if desired.
Implementations§
Source§impl Multipart<()>
impl Multipart<()>
Sourcepub fn from_request<R: HttpRequest>(req: R) -> Result<Multipart<R::Body>, R>
pub fn from_request<R: HttpRequest>(req: R) -> Result<Multipart<R::Body>, R>
If the given HttpRequest
is a multipart/form-data POST request,
return the request body wrapped in the multipart reader. Otherwise,
returns the original request.
Source§impl<R: Read> Multipart<R>
impl<R: Read> Multipart<R>
Sourcepub fn with_body<Bnd: Into<String>>(body: R, boundary: Bnd) -> Self
pub fn with_body<Bnd: Into<String>>(body: R, boundary: Bnd) -> Self
Construct a new Multipart
with the given body reader and boundary.
§Note: boundary
This will prepend the requisite --
to the boundary string as documented in
IETF RFC 1341, Section 7.2.1: “Multipart: the common syntax”.
Simply pass the value of the boundary
key from the Content-Type
header in the
request (or use Multipart::from_request()
, if supported).
Sourcepub fn read_entry(&mut self) -> Result<Option<MultipartField<&mut Self>>>
pub fn read_entry(&mut self) -> Result<Option<MultipartField<&mut Self>>>
Read the next entry from this multipart request, returning a struct with the field’s name and
data. See MultipartField
for more info.
§Warning: Risk of Data Loss
If the previously returned entry had contents of type MultipartField::File
,
calling this again will discard any unread contents of that entry.
Sourcepub fn into_entry(self) -> ReadEntryResult<Self>
pub fn into_entry(self) -> ReadEntryResult<Self>
Read the next entry from this multipart request, returning a struct with the field’s name and
data. See MultipartField
for more info.
Sourcepub fn foreach_entry<F>(&mut self, foreach: F) -> Result<()>where
F: FnMut(MultipartField<&mut Self>),
pub fn foreach_entry<F>(&mut self, foreach: F) -> Result<()>where
F: FnMut(MultipartField<&mut Self>),
Call f
for each entry in the multipart request.
This is a substitute for Rust not supporting streaming iterators (where the return value
from next()
borrows the iterator for a bound lifetime).
Returns Ok(())
when all fields have been read, or the first error.
Sourcepub fn save(&mut self) -> SaveBuilder<&mut Self>
pub fn save(&mut self) -> SaveBuilder<&mut Self>
Get a builder type for saving the files in this request to the filesystem.
See SaveBuilder
for more information.
Trait Implementations§
Auto Trait Implementations§
impl<R> Freeze for Multipart<R>where
R: Freeze,
impl<R> RefUnwindSafe for Multipart<R>where
R: RefUnwindSafe,
impl<R> Send for Multipart<R>where
R: Send,
impl<R> Sync for Multipart<R>where
R: Sync,
impl<R> Unpin for Multipart<R>where
R: Unpin,
impl<R> UnwindSafe for Multipart<R>where
R: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> ReadEntry for Twhere
T: PrivReadEntry,
impl<T> ReadEntry for Twhere
T: PrivReadEntry,
Source§fn read_entry(self) -> ReadEntryResult<Self>
fn read_entry(self) -> ReadEntryResult<Self>
Source§fn read_entry_mut(&mut self) -> ReadEntryResult<&mut Self>
fn read_entry_mut(&mut self) -> ReadEntryResult<&mut Self>
read_entry()
but takes &mut self