fix: Get filename error

#165
This commit is contained in:
MystiPanda 2023-12-19 19:52:13 +08:00
parent e3a500e12c
commit 99851b297d

View File

@ -264,14 +264,18 @@ impl PrfItem {
// parse the Content-Disposition // parse the Content-Disposition
let filename = match header.get("Content-Disposition") { let filename = match header.get("Content-Disposition") {
Some(value) => { Some(value) => {
let filename = value.to_str().unwrap_or(""); let filename = format!("{value:?}");
match help::parse_str::<String>(filename, "filename") { let filename = filename.trim_matches('"');
Some(filename) => Some(filename), match help::parse_str::<String>(filename, "filename*") {
None => match help::parse_str::<String>(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::<String>(filename, "filename") {
Some(filename) => { Some(filename) => {
let iter = percent_encoding::percent_decode(filename.as_bytes()); let filename = filename.trim_matches('"');
let filename = iter.decode_utf8().unwrap_or_default(); Some(filename.to_string())
filename.split("''").last().map(|s| s.to_string())
} }
None => None, None => None,
}, },