aboutsummaryrefslogtreecommitdiffstats
path: root/src/file_upload.rs
diff options
context:
space:
mode:
authorVojtěch Pejša <vojtechpejsa7@gmail.com>2019-03-28 10:29:56 +0000
committerVojtěch Pejša <vojtechpejsa7@gmail.com>2019-04-04 08:51:00 +0000
commit84b5852aad17961dfa2cb6ea3351b9fa3244fe6f (patch)
treeb73a63302b16fef6f8a2553127e670ffea332119 /src/file_upload.rs
parentAdd CLI arguments for file uploading. (diff)
downloadminiserve-84b5852aad17961dfa2cb6ea3351b9fa3244fe6f.tar.gz
miniserve-84b5852aad17961dfa2cb6ea3351b9fa3244fe6f.zip
Fix file upload when used with random route.
Diffstat (limited to 'src/file_upload.rs')
-rw-r--r--src/file_upload.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/file_upload.rs b/src/file_upload.rs
index 9f87724..98e3680 100644
--- a/src/file_upload.rs
+++ b/src/file_upload.rs
@@ -1,6 +1,6 @@
use actix_web::{
dev, error,
- http::header::{ContentDisposition, LOCATION},
+ http::header::{ContentDisposition, LOCATION, REFERER},
multipart, Error, FromRequest, FutureResponse, HttpMessage, HttpRequest, HttpResponse, Query,
};
use futures::{future, Future, Stream};
@@ -99,6 +99,7 @@ pub fn upload_file(req: &HttpRequest<crate::MiniserveConfig>) -> FutureResponse<
))
}
};
+ let return_path = req.headers()[REFERER].clone();
// if target path is under app root directory save file
let target_dir = match &app_root_dir.clone().join(path.clone()).canonicalize() {
@@ -112,9 +113,10 @@ pub fn upload_file(req: &HttpRequest<crate::MiniserveConfig>) -> FutureResponse<
.map(move |item| handle_multipart(item, target_dir.clone(), override_files))
.flatten()
.collect()
+ //.map(|s| HttpResponse::Ok().json(s))
.map(move |_| {
HttpResponse::TemporaryRedirect()
- .header(LOCATION, format!("{}", path.display()))
+ .header(LOCATION, format!("{}", return_path.to_str().unwrap_or("/")))
.finish()
})
.map_err(|e| e),