diff --git a/api_server.py b/api_server.py index feca84f..86c143e 100644 --- a/api_server.py +++ b/api_server.py @@ -400,7 +400,7 @@ def _process_files(file_ids: list[str], session_id: str) -> dict: file_path = info["path"] uploaded_paths.append(file_path) - parsed = parse_file(file_path, info["filename"].rsplit(".", 1)[-1] if "." in info["filename"] else "") + parsed = parse_file(file_path, Path(info["filename"]).suffix) if parsed.get("error"): parts.append(f"[文件: {info['filename']}]\n解析失败: {parsed['error']}") continue diff --git a/backend/file_parser.py b/backend/file_parser.py index b767ee2..88ee2cd 100644 --- a/backend/file_parser.py +++ b/backend/file_parser.py @@ -41,7 +41,9 @@ def parse_file(file_path: str, file_type: str = "") -> dict: if not path.exists(): return {"text": "", "file_type": file_type, "method": "none", "error": "文件不存在"} - suffix = file_type or path.suffix.lower() + suffix = path.suffix.lower() + if file_type: + suffix = file_type if file_type.startswith(".") else f".{file_type}" parsers = { ".png": _parse_image,