#rocket-web #upload #rocket #multipart #multipart-form #web #form-data

nightly bin+lib rocket_upload

Deal MultiPart Form Data in Rust Rocket web frame, easily upload files to server

1 unstable release

0.1.0 Dec 4, 2019

#14 in #form-data

47 downloads per month

MIT license

13KB
169 lines

Deal MultiPart Form Data in Rust Rocket web frame, easily upload files to server.

All code is in lib.rs. main.rs is a good example to see how it work.

Fist:

use rocket_upload::MultipartDatas;

Then in your handler:

#[post("/upload/<userid>", data = "<data>")]
fn upload(userid: String, content_type: &ContentType, data: MultipartDatas) -> Html<String>
{
  // to get a param from client
  let mut result=format!("UserID:{}<br>",userid);
  // content_type not used here, just for more informations
  result = format!("{}{:?}<br>",result,content_type);
  // aquire all Form field data
  for t in data.texts {
    result = format!("{}FieldName:{} --- FieldValue:{}<br>",result,t.key,t.value);
  }
  // aquire all files upload 
  for f in data.files {
    result = format!("{}FieldName:{} --- FileName:{} --- StoragePath:{}<br>",
      result,f.name,f.filename,f.path);
    f.persist(Path::new("upload"));
  }
  Html(format!("<html><head></head><body>upload coming...<br>{}</body></html>",result))
}

The project references the code of Magic Len's https://crates.io/crates/rocket-multipart-form-data

Dependencies

~16–29MB
~449K SLoC