[][src]Struct multipart::server::iron::Intercept

pub struct Intercept {
    pub temp_dir_path: Option<PathBuf>,
    pub file_size_limit: u64,
    pub file_count_limit: u32,
    pub limit_behavior: LimitBehavior,
}

A BeforeMiddleware for Iron which will intercept and read-out multipart requests and store the result in the request.

Successful reads will be placed in the extensions: TypeMap field of iron::Request as an Entries instance (as both key-type and value):

extern crate iron;
extern crate multipart;

use iron::prelude::*;

use multipart::server::Entries;
use multipart::server::iron::Intercept;

fn main() {
    let mut chain = Chain::new(|req: &mut Request| if let Some(entries) =
        req.extensions.get::<Entries>() {

        Ok(Response::with(format!("{:?}", entries)))
    } else {
        Ok(Response::with("Not a multipart request"))
    });

    chain.link_before(Intercept::default());

    Iron::new(chain).http("localhost:80").unwrap();
}

Any errors during which occur during reading will be passed on as IronError.

Fields

temp_dir_path: Option<PathBuf>

The parent directory for all temporary directories created by this middleware. Will be created if it doesn't exist (lazy).

If omitted, uses the OS temporary directory.

Default value: None.

file_size_limit: u64

The size limit of uploaded files, in bytes.

Files which exceed this size will be rejected. See the limit_behavior field for more info.

Default value: DEFAULT_FILE_SIZE_LIMIT

file_count_limit: u32

The limit on the number of files which will be saved from the request. Requests which exceed this count will be rejected.

Default value: DEFAULT_FILE_COUNT_LIMT

limit_behavior: LimitBehavior

What to do when a file count or size limit has been exceeded.

See LimitBehavior for more info.

Methods

impl Intercept
[src]

pub fn temp_dir_path<P: Into<PathBuf>>(self, path: P) -> Self
[src]

Set the temp_dir_path for this middleware.

pub fn file_size_limit(self, limit: u64) -> Self
[src]

Set the file_size_limit for this middleware.

pub fn file_count_limit(self, limit: u32) -> Self
[src]

Set the file_count_limit for this middleware.

pub fn limit_behavior(self, behavior: LimitBehavior) -> Self
[src]

Set the limit_behavior for this middleware.

Trait Implementations

impl Default for Intercept
[src]

impl Debug for Intercept
[src]

impl BeforeMiddleware for Intercept
[src]

fn catch(&self, &mut Request, err: IronError) -> Result<(), IronError>
[src]

Respond to an error thrown by a previous BeforeMiddleware. Read more

Auto Trait Implementations

impl Send for Intercept

impl Sync for Intercept

Blanket Implementations

impl<T> From for T
[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom for T where
    T: From<U>, 
[src]

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Typeable for T where
    T: Any

fn get_type(&self) -> TypeId

Get the TypeId of this object.

impl<F> BeforeMiddleware for F where
    F: Send + Sync + 'static + Fn(&mut Request) -> Result<(), IronError>, 
[src]

fn catch(&self, &mut Request, err: IronError) -> Result<(), IronError>
[src]

Respond to an error thrown by a previous BeforeMiddleware. Read more

impl<T> DebugAny for T where
    T: Any + Debug

impl<T> UnsafeAny for T where
    T: Any