[−][src]Struct actix_web::http::header::ContentDisposition
A Content-Disposition header. It is compatible to be used either as a response header for the main body as (re)defined in RFC6266, or as a header for a multipart body as (re)defined in RFC7587.
In a regular HTTP response, the Content-Disposition response header is a header indicating if the content is expected to be displayed inline in the browser, that is, as a Web page or as part of a Web page, or as an attachment, that is downloaded and saved locally, and also can be used to attach additional metadata, such as the filename to use when saving the response payload locally.
In a multipart/form-data body, the HTTP Content-Disposition general header is a header that can be used on the subpart of a multipart body to give information about the field it applies to. The subpart is delimited by the boundary defined in the Content-Type header. Used on the body itself, Content-Disposition has no effect.
ABNF
content-disposition = "Content-Disposition" ":"
disposition-type *( ";" disposition-parm )
disposition-type = "inline" | "attachment" | disp-ext-type
; case-insensitive
disp-ext-type = token
disposition-parm = filename-parm | disp-ext-parm
filename-parm = "filename" "=" value
| "filename*" "=" ext-value
disp-ext-parm = token "=" value
| ext-token "=" ext-value
ext-token = <the characters in token, followed by "*">
Note: filename* must not be used within multipart/form-data.
Example
use actix_web::http::header::{ Charset, ContentDisposition, DispositionParam, DispositionType, ExtendedValue, }; let cd1 = ContentDisposition { disposition: DispositionType::Attachment, parameters: vec![DispositionParam::FilenameExt(ExtendedValue { charset: Charset::Iso_8859_1, // The character set for the bytes of the filename language_tag: None, // The optional language tag (see `language-tag` crate) value: b"\xa9 Copyright 1989.txt".to_vec(), // the actual bytes of the filename })], }; assert!(cd1.is_attachment()); assert!(cd1.get_filename_ext().is_some()); let cd2 = ContentDisposition { disposition: DispositionType::FormData, parameters: vec![ DispositionParam::Name(String::from("file")), DispositionParam::Filename(String::from("bill.odt")), ], }; assert_eq!(cd2.get_name(), Some("file")); // field name assert_eq!(cd2.get_filename(), Some("bill.odt"));
WARN
If "filename" parameter is supplied, do not use the file name blindly, check and possibly change to match local file system conventions if applicable, and do not use directory path information that may be present. See RFC2183 .
Fields
disposition: DispositionType
The disposition type
parameters: Vec<DispositionParam>
Disposition parameters
Methods
impl ContentDisposition
[src]
impl ContentDisposition
pub fn from_raw(hv: &HeaderValue) -> Result<Self, ParseError>
[src]
pub fn from_raw(hv: &HeaderValue) -> Result<Self, ParseError>
Parse a raw Content-Disposition header value.
pub fn is_inline(&self) -> bool
[src]
pub fn is_inline(&self) -> bool
Returns true
if it is Inline
.
pub fn is_attachment(&self) -> bool
[src]
pub fn is_attachment(&self) -> bool
Returns true
if it is Attachment
.
pub fn is_form_data(&self) -> bool
[src]
pub fn is_form_data(&self) -> bool
Returns true
if it is FormData
.
pub fn is_ext<T: AsRef<str>>(&self, disp_type: T) -> bool
[src]
pub fn is_ext<T: AsRef<str>>(&self, disp_type: T) -> bool
Returns true
if it is Ext
and the disp_type
matches.
pub fn get_name(&self) -> Option<&str>
[src]
pub fn get_name(&self) -> Option<&str>
Return the value of name if exists.
pub fn get_filename(&self) -> Option<&str>
[src]
pub fn get_filename(&self) -> Option<&str>
Return the value of filename if exists.
pub fn get_filename_ext(&self) -> Option<&ExtendedValue>
[src]
pub fn get_filename_ext(&self) -> Option<&ExtendedValue>
Return the value of filename* if exists.
pub fn get_unknown<T: AsRef<str>>(&self, name: T) -> Option<&str>
[src]
pub fn get_unknown<T: AsRef<str>>(&self, name: T) -> Option<&str>
Return the value of the parameter which the name
matches.
pub fn get_unknown_ext<T: AsRef<str>>(&self, name: T) -> Option<&ExtendedValue>
[src]
pub fn get_unknown_ext<T: AsRef<str>>(&self, name: T) -> Option<&ExtendedValue>
Return the value of the extended parameter which the name
matches.
Trait Implementations
impl PartialEq<ContentDisposition> for ContentDisposition
[src]
impl PartialEq<ContentDisposition> for ContentDisposition
fn eq(&self, other: &ContentDisposition) -> bool
[src]
fn eq(&self, other: &ContentDisposition) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &ContentDisposition) -> bool
[src]
fn ne(&self, other: &ContentDisposition) -> bool
This method tests for !=
.
impl Clone for ContentDisposition
[src]
impl Clone for ContentDisposition
fn clone(&self) -> ContentDisposition
[src]
fn clone(&self) -> ContentDisposition
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
impl Display for ContentDisposition
[src]
impl Display for ContentDisposition
fn fmt(&self, f: &mut Formatter) -> Result
[src]
fn fmt(&self, f: &mut Formatter) -> Result
Formats the value using the given formatter. Read more
impl Debug for ContentDisposition
[src]
impl Debug for ContentDisposition
Auto Trait Implementations
impl Send for ContentDisposition
impl Send for ContentDisposition
impl Sync for ContentDisposition
impl Sync for ContentDisposition
Blanket Implementations
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
type Owned = T
fn to_owned(&self) -> T
[src]
fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
fn clone_into(&self, target: &mut T)
[src]
fn clone_into(&self, target: &mut T)
🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
impl<T> ToString for T where
T: Display + ?Sized,
[src]
impl<T> ToString for T where
T: Display + ?Sized,
impl<T> From for T
[src]
impl<T> From for T
impl<T, U> Into for T where
U: From<T>,
[src]
impl<T, U> Into for T where
U: From<T>,
impl<T, U> TryFrom for T where
T: From<U>,
[src]
impl<T, U> TryFrom for T where
T: From<U>,
type Error = !
try_from
)The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
try_from
)Performs the conversion.
impl<T> Borrow for T where
T: ?Sized,
[src]
impl<T> Borrow for T where
T: ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
impl<T> BorrowMut for T where
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
try_from
)The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
try_from
)Performs the conversion.
impl<T> Any for T where
T: 'static + ?Sized,
[src]
impl<T> Any for T where
T: 'static + ?Sized,
fn get_type_id(&self) -> TypeId
[src]
fn get_type_id(&self) -> TypeId
🔬 This is a nightly-only experimental API. (get_type_id
)
this method will likely be replaced by an associated static
Gets the TypeId
of self
. Read more
impl<T> Erased for T
impl<T> Erased for T