diff --git a/src/main.rs b/src/main.rs index 8fba822..a5fb1af 100644 --- a/src/main.rs +++ b/src/main.rs @@ -583,8 +583,16 @@ impl MainHandler { let headers = &field.headers; let mut target_path = path.to_owned(); - let raw_filename = headers.filename.clone().unwrap(); - let filename = Path::new(&raw_filename).file_name().unwrap(); + let Some(raw_filename) = headers.filename.clone() else { + println!("[Warning]: Skipping field with no filename"); + continue; + }; + + let Some(filename) = Path::new(&raw_filename).file_name() else { + println!("[Warning]: Invalid filename: {raw_filename}"); + continue; + }; + target_path.push(filename); if let Err(errno) = std::fs::File::create(target_path) .and_then(|mut file| io::copy(&mut data, &mut file)) @@ -594,7 +602,7 @@ impl MainHandler { format!("Copy file failed: {errno}"), )); } else { - println!(" >> File saved: {}", headers.filename.clone().unwrap()); + println!(" >> File saved: {raw_filename}"); } } Ok(())