update. 升级上传接口,支持按文件种类分类

This commit is contained in:
2026-04-10 12:39:23 +08:00
parent ec38651899
commit 6108dd3346
+8 -8
View File
@@ -58,24 +58,24 @@ UPLOAD_DIR = Path("media/uploads")
UPLOAD_DIR.mkdir(parents=True, exist_ok=True)
@router.post("/upload/")
def upload_file(request, upload: UploadedFile = File(...)):
@router.post("/upload/{category}")
def upload_file(request, category: str, file: UploadedFile = File(...), ):
try:
# 计算 md5
md5 = hashlib.md5(upload.read()).hexdigest()
upload.seek(0) # 重置文件指针
md5 = hashlib.md5(file.read()).hexdigest()
file.seek(0) # 重置文件指针
ext = upload.name.split('.')[-1].lower()
ext = file.name.split('.')[-1].lower()
filename = f"{md5}.{ext}"
upload_dir = os.path.join(settings.MEDIA_ROOT, f"uploads/")
upload_dir = os.path.join(settings.MEDIA_ROOT, f"uploads/{category}/")
os.makedirs(upload_dir, exist_ok=True)
file_path = os.path.join(upload_dir, filename)
with open(file_path, "wb") as f:
f.write(upload.read())
f.write(file.read())
url = f"{settings.MEDIA_URL}uploads/{datetime.today().strftime('%Y/%m/%d')}/{filename}"
url = f"{settings.MEDIA_URL}uploads/{category}/{filename}"
return {"url": url}
except Exception as e:
logger.exception("Upload failed")