Переглянути джерело

fix: Get filename error

#165
MystiPanda 1 рік тому
батько
коміт
99851b297d
1 змінених файлів з 11 додано та 7 видалено
  1. 11 7
      src-tauri/src/config/prfitem.rs

+ 11 - 7
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::<String>(filename, "filename") {
-                    Some(filename) => Some(filename),
-                    None => match help::parse_str::<String>(filename, "filename*") {
+                let filename = format!("{value:?}");
+                let filename = filename.trim_matches('"');
+                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) => {
-                            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,
                     },