Struct multipart::server::MultipartFile [] [src]

pub struct MultipartFile<'a, R: 'a> {
    // some fields omitted
}

A representation of a file in HTTP multipart/form-data.

Note that the file is not yet saved to the system; 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, R: Read> MultipartFile<'a, R>
[src]

fn save_as(&mut self, path: &Path) -> Result<u64>

Save this file to path.

Returns the number of bytes written on success, or any errors otherwise.

Retries when io::Error::kind() == io::ErrorKind::Interrupted.

fn save_in(&mut self, dir: &Path) -> Result<PathBuf>

Save this file in the directory pointed at by dir, using self.filename() if present, or a random alphanumeric string otherwise.

Any missing directories in the dir path will be created.

self.filename() is sanitized of all file separators before being appended to dir.

Returns the created file's path on success, or any errors otherwise.

Retries when io::Error::kind() == io::ErrorKind::Interrupted.

fn save(&mut self) -> Result<PathBuf>

Save this file in the directory pointed at by self.save_dir, using self.filename() if present, or a random alphanumeric string otherwise.

Any missing directories in the self.save_dir path will be created.

self.filename() is sanitized of all file separators before being appended to self.save_dir.

Returns the created file's path 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.

fn save_dir(&self) -> &Path

The save directory assigned to this file field by the Multipart instance it was read from.

Trait Implementations

impl<'a, R: Debug + 'a> Debug for MultipartFile<'a, R>
[src]

fn fmt(&self, __arg_0: &mut Formatter) -> Result

Formats the value using the given formatter.

impl<'a, R: Read> Read for MultipartFile<'a, R>
[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<usizeError>
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<usizeError>
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>

Unstable (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 chars. 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, R: Read> BufRead for MultipartFile<'a, R>
[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<usizeError>
1.0.0

Read all bytes into buf until the delimiter byte is reached. Read more

fn read_line(&mut self, buf: &mut String) -> Result<usizeError>
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