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