diff --git a/app/api/v1/images.py b/app/api/v1/images.py index 172a3b4..168c6b3 100644 --- a/app/api/v1/images.py +++ b/app/api/v1/images.py @@ -133,10 +133,12 @@ async def batch_recognize(files: List[UploadFile], db: AsyncSession = Depends(ge if not file.filename: results.append({"filename": "unknown", "status": "error", "message": "文件名为空"}) continue - suffix = _check_image_ext(file.filename) - dest_path = settings.images_dir / file.filename + # 只取文件名,去掉文件夹上传时带上的相对路径 + filename = os.path.basename(file.filename) + suffix = _check_image_ext(filename) + dest_path = settings.images_dir / filename counter = 1 - stem = os.path.splitext(file.filename)[0] + stem = os.path.splitext(filename)[0] while dest_path.exists(): dest_path = settings.images_dir / f"{stem}_{counter}{suffix}" counter += 1 @@ -240,8 +242,10 @@ async def import_from_paths(data: PathImportRequest, db: AsyncSession = Depends( async def recognize_direct(file: UploadFile, db: AsyncSession = Depends(get_db)): if not file.filename: raise HTTPException(status_code=400, detail="文件名不能为空") - suffix = _check_image_ext(file.filename) - dest_path = settings.images_dir / file.filename + # 只取文件名,去掉文件夹上传时带上的相对路径(如 xx/01.jpg -> 01.jpg) + filename = os.path.basename(file.filename) + suffix = _check_image_ext(filename) + dest_path = settings.images_dir / filename counter = 1 stem = os.path.splitext(file.filename)[0] while dest_path.exists():