actix-form-data/examples/simple.rs

43 lines
1.1 KiB
Rust
Raw Normal View History

use std::path::PathBuf;
use actix_multipart::Multipart;
use actix_web::{
web::{post, resource, Data},
App, HttpResponse, HttpServer,
};
use form_data::{handle_multipart, Error, Field, Form};
async fn upload(mp: Multipart, state: Data<Form>) -> Result<HttpResponse, Error> {
let uploaded_content = handle_multipart(mp, state.get_ref().clone()).await?;
println!("Uploaded Content: {:?}", uploaded_content);
Ok(HttpResponse::Created().finish())
}
#[actix_rt::main]
async fn main() -> Result<(), anyhow::Error> {
let form = Form::new()
.field("Hey", Field::text())
.field(
"Hi",
Field::map()
.field("One", Field::int())
.field("Two", Field::float())
.finalize(),
)
.field("files", Field::array(Field::file()));
println!("{:?}", form);
HttpServer::new(move || {
App::new()
.data(form.clone())
.service(resource("/upload").route(post().to(upload)))
2018-10-09 23:35:10 +00:00
})
.bind("127.0.0.1:8080")?
.run()
.await?;
Ok(())
}