Actix Easy Multipart
Typed multipart form extractor for actix-web.
Example
use actix_web::Responder;
use actix_easy_multipart::{File, FromMultipart};
use actix_easy_multipart::extractor::MultipartForm;
#[derive(MultipartForm)]
struct Upload {
description: Option<Text<String>>,
timestamp: Text<i64>,
#[multipart(rename="image_set[]")
image_set: Vec<Tempfile>,
}
async fn route(form: MultipartForm<Upload>) -> impl Responder {
format!("Received 5 images: {}", form.image_set.len())
}
Features
- Receiving optional fields, using
Option
.
- Receiving lists of fields, using
Vec<T>
.
- Deserialize integers, floats, enums from plain text fields using
Text<T>
.
- Deserialize complex data from JSON uploads, using
Json<T>
.
- Receive file uploads into temporary files on disk, using
Tempfile
.
- User customisable asynchronous field readers, for example you may want to stream form data to an object storage
service, just implement the
FieldReader
trait.
Versions and Compatibility
actix-easy-multipart |
actix-web |
tokio |
0.x |
2.x |
0.2 |
1.x |
3.x |
0.2 |
2.x |
4.x |
1 |
3.x |
4.x |
1 |
See Also