feat: add upload title fallback

This commit is contained in:
2026-03-09 15:37:49 +08:00
parent 02ac19f063
commit cce27b7281

View File

@@ -59,6 +59,15 @@ def _user_designer_aliases(user: User) -> list[str]:
return aliases
def _generate_fallback_title(category: str, designer_name: str, unique_id: str) -> str:
category_name = str(category or "设计素材").strip() or "设计素材"
designer = str(designer_name or "").strip()
suffix = unique_id.replace("-", "")[:6]
if designer:
return f"{category_name}_{designer}_{suffix}"
return f"{category_name}_自动生成_{suffix}"
def generate_thumbnail(image_path: str, thumb_path: str, size=(400, 400)):
"""生成缩略图 - 修复透明 PNG 问题"""
with Image.open(image_path) as img:
@@ -115,7 +124,7 @@ def add_watermark(image_path: str, watermarked_path: str, watermark_text: str =
@router.post("", summary="上传作品")
async def upload_work(
file: UploadFile = File(..., description="作品图片文件"),
title: str = Form(..., description="作品标题"),
title: Optional[str] = Form(None, description="作品标题"),
description: Optional[str] = Form(None, description="作品描述"),
category: str = Form(..., description="作品分类"),
tags: Optional[str] = Form(None, description="标签,逗号分隔"),
@@ -191,10 +200,11 @@ async def upload_work(
else:
tags_str = None
resolved_designer = str(designer_name or "").strip() or current_user.nickname or current_user.phone
resolved_title = str(title or "").strip() or _generate_fallback_title(category, resolved_designer, unique_id)
# 创建数据库记录 - 修复所有字段问题
work = Work(
title=title,
title=resolved_title,
description=description or "",
category=category,
tags=tags_str, # 修复:使用字符串而不是列表