Struct tokio_http2::server::MultipartFile
[−]
[src]
pub struct MultipartFile<'a, B: 'a> { /* fields omitted */ }
A representation of a file in HTTP multipart/form-data
.
Note that the file is not yet saved to the local filesystem;
instead, this struct exposes Read
and BufRead
impls which point
to the beginning of the file's contents in the HTTP stream.
You can read it to EOF, or use one of the save_*()
methods here
to save it to disk.
Methods
impl<'a, B: Read> MultipartFile<'a, B>
[src]
fn save_to<W: Write>(&mut self, out: W) -> Result<u64>
Save this file to the given output stream.
If successful, returns the number of bytes written.
Retries when io::Error::kind() == io::ErrorKind::Interrupted
.
fn save_to_limited<W: Write>(&mut self, out: W, limit: u64) -> Result<u64>
Save this file to the given output stream, truncated to limit
(no more than limit
bytes will be written out).
If successful, returns the number of bytes written.
Retries when io::Error::kind() == io::ErrorKind::Interrupted
.
fn save_as<P: Into<PathBuf>>(&mut self, path: P) -> Result<SavedFile>
Save this file to path
.
Returns the saved file info on success, or any errors otherwise.
Retries when io::Error::kind() == io::ErrorKind::Interrupted
.
fn save_in<P: AsRef<Path>>(&mut self, dir: P) -> Result<SavedFile>
Save this file in the directory pointed at by dir
,
using a random alphanumeric string as the filename.
Any missing directories in the dir
path will be created.
Returns the saved file's info on success, or any errors otherwise.
Retries when io::Error::kind() == io::ErrorKind::Interrupted
.
fn save_as_limited<P: Into<PathBuf>>(&mut self,
path: P,
limit: u64)
-> Result<SavedFile>
path: P,
limit: u64)
-> Result<SavedFile>
Save this file to path
, truncated to limit
(no more than limit
bytes will be written out).
Any missing directories in the dir
path will be created.
Returns the saved file's info on success, or any errors otherwise.
Retries when io::Error::kind() == io::ErrorKind::Interrupted
.
fn save_in_limited<P: AsRef<Path>>(&mut self,
dir: P,
limit: u64)
-> Result<SavedFile>
dir: P,
limit: u64)
-> Result<SavedFile>
Save this file in the directory pointed at by dir
,
using a random alphanumeric string as the filename.
Truncates file to limit
(no more than limit
bytes will be written out).
Any missing directories in the dir
path will be created.
Returns the saved file's info on success, or any errors otherwise.
Retries when io::Error::kind() == io::ErrorKind::Interrupted
.
fn filename(&self) -> Option<&str>
Get the filename of this entry, if supplied.
Warning
You should treat this value as untrustworthy because it is an arbitrary string provided by the client. You should not blindly append it to a directory path and save the file there, as such behavior could easily be exploited by a malicious client.
fn content_type(&self) -> &Mime
Get the MIME type (Content-Type
value) of this file, if supplied by the client,
or "applicaton/octet-stream"
otherwise.
Trait Implementations
impl<'a, B: Debug + 'a> Debug for MultipartFile<'a, B>
[src]
impl<'a, B: Read> Read for MultipartFile<'a, B>
[src]
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
Pull some bytes from this source into the specified buffer, returning how many bytes were read. Read more
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
1.0.0
Read all bytes until EOF in this source, placing them into buf
. Read more
fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
1.0.0
Read all bytes until EOF in this source, placing them into buf
. Read more
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
1.6.0
Read the exact number of bytes required to fill buf
. Read more
fn by_ref(&mut self) -> &mut Self
1.0.0
Creates a "by reference" adaptor for this instance of Read
. Read more
fn bytes(self) -> Bytes<Self>
1.0.0
Transforms this Read
instance to an Iterator
over its bytes. Read more
fn chars(self) -> Chars<Self>
io
): the semantics of a partial read/write of where errors happen is currently unclear and may change
Transforms this Read
instance to an Iterator
over char
s. Read more
fn chain<R>(self, next: R) -> Chain<Self, R> where R: Read
1.0.0
Creates an adaptor which will chain this stream with another. Read more
fn take(self, limit: u64) -> Take<Self>
1.0.0
Creates an adaptor which will read at most limit
bytes from it. Read more
impl<'a, B: Read> BufRead for MultipartFile<'a, B>
[src]
fn fill_buf(&mut self) -> Result<&[u8]>
Fills the internal buffer of this object, returning the buffer contents. Read more
fn consume(&mut self, amt: usize)
Tells this buffer that amt
bytes have been consumed from the buffer, so they should no longer be returned in calls to read
. Read more
fn read_until(&mut self, byte: u8, buf: &mut Vec<u8>) -> Result<usize, Error>
1.0.0
Read all bytes into buf
until the delimiter byte
or EOF is reached. Read more
fn read_line(&mut self, buf: &mut String) -> Result<usize, Error>
1.0.0
Read all bytes until a newline (the 0xA byte) is reached, and append them to the provided buffer. Read more
fn split(self, byte: u8) -> Split<Self>
1.0.0
Returns an iterator over the contents of this reader split on the byte byte
. Read more
fn lines(self) -> Lines<Self>
1.0.0
Returns an iterator over the lines of this reader. Read more