11_multipart/
11_multipart.rs1use flyer::{
2 request::Request,
3 response::Response,
4 server,
5 storage::local::LocalStorage,
6};
7
8pub async fn home(_req: Request, res: Response) -> Response {
9 return res.html(r#"
10 <form method="post" action="/upload" enctype="multipart/form-data">
11 <h1>Upload File/Files</h1>
12 <input type="file" name="file" multiple>
13 <button type="submit">Upload</button>
14 </form>
15 "#);
16}
17
18pub async fn upload(req: Request, res: Response) -> Response {
19 if req.files().len() > 0 {
20 for (_, file) in req.files() {
21 file
22 .save_as("", &file.name)
23 .await
24 .unwrap();
25 }
26 return res.html("<h1>File uploaded!</h1>");
27 }
28 return res.html("<h1>No file uploaded!</h1>");
29}
30
31fn main() {
32 let server = server("127.0.0.1", 9999)
33 .storage("default", LocalStorage::new("storage"));
34
35 server.router().group("/", |router| {
36 router.get("/", home);
37 router.post("upload", upload);
38 });
39
40 print!("\r\n\r\nRunning server: {}\r\n\r\n", server.address());
41
42 server.listen();
43}