From ab92a87120fba194c13e92c2e95d1606a7c545ff Mon Sep 17 00:00:00 2001 From: dangzerong <429714019@qq.com> Date: Tue, 18 Nov 2025 16:36:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=A4=9A=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/apps/document_app.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/api/apps/document_app.py b/api/apps/document_app.py index 45f89ff..00188be 100644 --- a/api/apps/document_app.py +++ b/api/apps/document_app.py @@ -72,17 +72,24 @@ router = APIRouter() @router.post("/upload") async def upload( kb_id: str = Form(...), - file: UploadFile = File(...), + file: List[UploadFile] = File(...), current_user = Depends(get_current_user) ): """上传文档""" if not file: return get_json_result(data=False, message="No file part!", code=settings.RetCode.ARGUMENT_ERROR) - if not file.filename or file.filename == "": - return get_json_result(data=False, message="No file selected!", code=settings.RetCode.ARGUMENT_ERROR) - if len(file.filename.encode("utf-8")) > FILE_NAME_LEN_LIMIT: - return get_json_result(data=False, message=f"File name must be {FILE_NAME_LEN_LIMIT} bytes or less.", code=settings.RetCode.ARGUMENT_ERROR) + valid_files: List[UploadFile] = [] + for upload_file in file: + if not upload_file or not upload_file.filename: + return get_json_result(data=False, message="No file selected!", code=settings.RetCode.ARGUMENT_ERROR) + if len(upload_file.filename.encode("utf-8")) > FILE_NAME_LEN_LIMIT: + return get_json_result( + data=False, + message=f"File '{upload_file.filename}' name must be {FILE_NAME_LEN_LIMIT} bytes or less.", + code=settings.RetCode.ARGUMENT_ERROR + ) + valid_files.append(upload_file) e, kb = KnowledgebaseService.get_by_id(kb_id) if not e: @@ -90,7 +97,7 @@ async def upload( if not check_kb_team_permission(kb, current_user.id): return get_json_result(data=False, message="No authorization.", code=settings.RetCode.AUTHENTICATION_ERROR) - err, uploaded_files = FileService.upload_document(kb, [file], current_user.id) + err, uploaded_files = FileService.upload_document(kb, valid_files, current_user.id) if err: return get_json_result(data=uploaded_files, message="\n".join(err), code=settings.RetCode.SERVER_ERROR)