后端增加upload_file路由

This commit is contained in:
jingrow 2025-11-05 03:42:48 +08:00
parent a511f57a59
commit 55371ca42d
2 changed files with 40 additions and 5 deletions

View File

@ -129,7 +129,7 @@ export const uploadAttachment = async (
formData.append('folder', 'Home')
const response = await axios.post(
`/api/action/upload_file`,
`/jingrow/upload_file`,
formData,
{
headers: {
@ -334,7 +334,7 @@ export const uploadFileToJingrow = async (
}
const response = await axios.post(
`/api/action/upload_file`,
`/jingrow/upload_file`,
formData,
{
headers: {

View File

@ -5,7 +5,7 @@
提供对云端数据库的增删改查操作
"""
from fastapi import APIRouter, HTTPException, Request
from fastapi import APIRouter, HTTPException, Request, UploadFile, File, Form
from fastapi.responses import JSONResponse
from typing import Dict, Any, Optional
import json
@ -198,5 +198,40 @@ async def get_record_count(request: Request, pagetype: str):
raise HTTPException(status_code=500, detail=str(e))
@router.post("/jingrow/upload_file")
async def upload_file_api(
file: UploadFile = File(...),
attached_to_pagetype: Optional[str] = Form(None),
attached_to_name: Optional[str] = Form(None),
attached_to_field: Optional[str] = Form(None)
):
"""上传文件到Jingrow服务器"""
try:
# 读取文件内容
file_content = await file.read()
filename = file.filename or "uploaded_file"
# 调用 jingrow.upload_file
result = jingrow.upload_file(
file_data=file_content,
filename=filename,
attached_to_pagetype=attached_to_pagetype,
attached_to_name=attached_to_name,
attached_to_field=attached_to_field
)
# 检查结果
if result.get('success'):
return JSONResponse(content={
"message": {
"file_url": result.get('file_url'),
"file_name": result.get('file_name')
}
})
else:
raise HTTPException(status_code=400, detail=result.get('error', '上传文件失败'))
except HTTPException:
raise
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))