/* * This file is part of Actix Form Data. * * Copyright © 2018 Riley Trautman * * Actix Form Data is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Actix Form Data is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Actix Form Data. If not, see . */ //! # Actix Form Data //! A library for retrieving form data from Actix Web's multipart streams. It can stream //! uploaded files onto the filesystem (its main purpose), but it can also parse associated //! form data. //! //! # Example //! //!```rust //! use actix_multipart::Multipart; //! use actix_web::{ //! web::{post, resource, Data}, //! App, HttpResponse, HttpServer, //! }; //! use form_data::{handle_multipart, Error, Field, FilenameGenerator, Form}; //! use futures::Future; //! //! //! fn upload((mp, state): (Multipart, Data
)) -> Box> { //! Box::new( //! handle_multipart(mp, state.get_ref().clone()).map(|uploaded_content| { //! println!("Uploaded Content: {:?}", uploaded_content); //! HttpResponse::Created().finish() //! }), //! ) //! } //! //! fn main() -> Result<(), failure::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(Gen))); //! //! println!("{:?}", form); //! //! HttpServer::new(move || { //! App::new() //! .data(form.clone()) //! .service(resource("/upload").route(post().to(upload))) //! }) //! .bind("127.0.0.1:8080")?; //! // .run()?; //! //! Ok(()) //! } //!``` mod error; mod types; mod upload; pub use self::{error::Error, types::*, upload::handle_multipart};