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
) -> Result { 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))) }) .bind("127.0.0.1:8080")? .run() .await?; Ok(()) }