formdata 0.9.0

Parsing of multipart/form-data
Documentation

formdata

Build Status MIT licensed

Documentation is available at https://mikedilger.github.io/formdata

This library provides a function for server-side parsing of a stream in multipart/form-data format as described by RFC 7578. It separates embedded files and streams them to temporary files on disk, while collecting the other form fields into the returned data structure.

HTML forms with enctype=multipart/form-data POST their data in this format. This enctype is typically used whenever a form has file upload input fields, as the default application/x-www-form-urlencoded cannot handle file uploads.

Usage in Iron

Iron users are directed to consider using the https://crates.io/crates/params crate, which is an Iron plugin that works at a higher level and gives a broader scope than this crate does.

Example

let (_, _, headers, _, _, mut reader) = hyper_request.deconstruct();
let form_data = try!(get_formdata(&mut reader, &headers));

for (name, value) in form_data.fields {
    println!("Posted field name={} value={}",name,value);
}

for (name, file) in form_data.files {
    println!("Posted file name={} filename={:?} content_type={} size={} temporary_path={:?}",
             name, try!(file.filename()).unwrap(),
             file.content_type.unwrap(),
             file.size.unwrap(),
             file.path);
}