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,15 +264,19 @@ 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) => { Some(filename) => {
let iter = percent_encoding::percent_decode(filename.as_bytes()); let iter = percent_encoding::percent_decode(filename.as_bytes());
let filename = iter.decode_utf8().unwrap_or_default(); let filename = iter.decode_utf8().unwrap_or_default();
filename.split("''").last().map(|s| s.to_string()) filename.split("''").last().map(|s| s.to_string())
} }
None => match help::parse_str::<String>(filename, "filename") {
Some(filename) => {
let filename = filename.trim_matches('"');
Some(filename.to_string())
}
None => None, None => None,
}, },
} }