From 325d30127f9295f16b6259258cae37d51f9627b8 Mon Sep 17 00:00:00 2001 From: xvny <37498498+xvny@users.noreply.github.com> Date: Wed, 20 Jun 2018 23:03:56 +0800 Subject: [PATCH] Update main.rs --- multipart/src/main.rs | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/multipart/src/main.rs b/multipart/src/main.rs index 2945ab51..5643f176 100644 --- a/multipart/src/main.rs +++ b/multipart/src/main.rs @@ -6,6 +6,7 @@ extern crate futures; use std::fs; use std::io::Write; +use std::cell::Cell; use actix_web::{ error, http, middleware, multipart, server, App, Error, FutureResponse, HttpMessage, @@ -15,9 +16,11 @@ use actix_web::{ use futures::future; use futures::{Future, Stream}; -pub fn save_file( - field: multipart::Field, -) -> Box> { +pub struct AppState { + pub counter: Cell, +} + +pub fn save_file( field: multipart::Field>) -> Box> { let file_path_string = "upload.png"; let mut file = match fs::File::create(file_path_string) { Ok(file) => file, @@ -42,9 +45,7 @@ pub fn save_file( ) } -pub fn handle_multipart_item( - item: multipart::MultipartItem, -) -> Box> { +pub fn handle_multipart_item( item: multipart::MultipartItem>) -> Box> { match item { multipart::MultipartItem::Field(field) => { Box::new(save_file(field).into_stream()) @@ -57,7 +58,9 @@ pub fn handle_multipart_item( } } -pub fn upload(req: HttpRequest) -> FutureResponse { +pub fn upload(req: HttpRequest) -> FutureResponse { + req.state().counter.set(req.state().counter.get() + 1); + println!("{:?}", req.state().counter.get()); Box::new( req.clone() .multipart() @@ -73,7 +76,7 @@ pub fn upload(req: HttpRequest) -> FutureResponse { ) } -fn index(_req: HttpRequest) -> Result { +fn index(_req: HttpRequest) -> Result { let html = r#" Upload Test @@ -93,7 +96,7 @@ fn main() { let sys = actix::System::new("multipart-example"); server::new(|| { - App::new() + App::with_state(AppState{counter: Cell::new(0)}) .middleware(middleware::Logger::default()) .resource("/", |r| { r.method(http::Method::GET).with(index);