diff --git a/src-tauri/src/config/prfitem.rs b/src-tauri/src/config/prfitem.rs index 9b28e057..f8099607 100644 --- a/src-tauri/src/config/prfitem.rs +++ b/src-tauri/src/config/prfitem.rs @@ -264,14 +264,18 @@ impl PrfItem { // parse the Content-Disposition let filename = match header.get("Content-Disposition") { Some(value) => { - let filename = value.to_str().unwrap_or(""); - match help::parse_str::(filename, "filename") { - Some(filename) => Some(filename), - None => match help::parse_str::(filename, "filename*") { + let filename = format!("{value:?}"); + let filename = filename.trim_matches('"'); + match help::parse_str::(filename, "filename*") { + Some(filename) => { + let iter = percent_encoding::percent_decode(filename.as_bytes()); + let filename = iter.decode_utf8().unwrap_or_default(); + filename.split("''").last().map(|s| s.to_string()) + } + None => match help::parse_str::(filename, "filename") { Some(filename) => { - let iter = percent_encoding::percent_decode(filename.as_bytes()); - let filename = iter.decode_utf8().unwrap_or_default(); - filename.split("''").last().map(|s| s.to_string()) + let filename = filename.trim_matches('"'); + Some(filename.to_string()) } None => None, },