修改查看图片的问题
This commit is contained in:
@ -30,6 +30,12 @@ def get_type_list(session: Session = Depends(get_db)):
|
||||
|
||||
@project.post("/list")
|
||||
def project_pager(info: ProjectInfoPager, session: Session = Depends(get_db)):
|
||||
"""
|
||||
|
||||
:param info:
|
||||
:param session:
|
||||
:return:
|
||||
"""
|
||||
pager = pic.get_project_pager(info, session)
|
||||
return rc.response_success_pager(pager)
|
||||
|
||||
@ -120,7 +126,9 @@ def del_label(label_id: int, session: Session = Depends(get_db)):
|
||||
|
||||
|
||||
@project.post("/up_proj_img")
|
||||
def upload_project_image(project_id: int = Form(...), files: List[UploadFile] = File(...), session: Session = Depends(get_db)):
|
||||
def upload_project_image(project_id: int = Form(...),
|
||||
files: List[UploadFile] = File(...),
|
||||
session: Session = Depends(get_db)):
|
||||
"""
|
||||
上传项目图片
|
||||
:param files: 文件图片
|
@ -1,20 +1,41 @@
|
||||
import os
|
||||
from fastapi import APIRouter, HTTPException
|
||||
from fastapi import APIRouter, HTTPException, Depends
|
||||
from starlette.responses import FileResponse
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.model.crud.project_image_crud import get_img_url
|
||||
from app.config.config_reader import images_url
|
||||
from app.db.db_session import get_db
|
||||
|
||||
view = APIRouter()
|
||||
|
||||
|
||||
@view.get("/{file_path:path}")
|
||||
def view_img(file_path):
|
||||
@view.get("/view_img/{image_id}")
|
||||
def view_img(image_id: int, session: Session = Depends(get_db)):
|
||||
"""
|
||||
查看图片
|
||||
:param file_path: 图片路径
|
||||
:param session:
|
||||
:param image_id: 图片id
|
||||
:return:
|
||||
"""
|
||||
image_path = os.path.join(images_url, file_path)
|
||||
sour_url, thumb_url = get_img_url(image_id, session)
|
||||
image_path = os.path.join(images_url, sour_url)
|
||||
# 检查文件是否存在以及是否是文件
|
||||
if not os.path.isfile(image_path):
|
||||
raise HTTPException(status_code=404, detail="Image not found")
|
||||
return FileResponse(image_path, media_type='image/jpeg')
|
||||
|
||||
|
||||
@view.get("/view_thumb/{image_id}")
|
||||
def view_thumb(image_id: int, session: Session = Depends(get_db)):
|
||||
"""
|
||||
查看图片
|
||||
:param session:
|
||||
:param image_id: 图片id
|
||||
:return:
|
||||
"""
|
||||
sour_url, thumb_url = get_img_url(image_id, session)
|
||||
image_path = os.path.join(images_url, thumb_url)
|
||||
# 检查文件是否存在以及是否是文件
|
||||
if not os.path.isfile(image_path):
|
||||
raise HTTPException(status_code=404, detail="Image not found")
|
||||
|
@ -7,7 +7,7 @@ from app.application.logger_middleware import LoggerMiddleware
|
||||
from app.api.common.upload_file import upload_files
|
||||
from app.api.sys.login_api import login
|
||||
from app.api.sys.sys_user_api import user
|
||||
from app.api.business.project_api import project
|
||||
from app.api.business.project_train_api import project
|
||||
from app.api.common.view_img import view
|
||||
|
||||
my_app = FastAPI()
|
||||
@ -32,7 +32,7 @@ my_app.add_middleware(TokenMiddleware)
|
||||
|
||||
my_app.include_router(login, prefix="/login", tags=["用户登录接口"])
|
||||
my_app.include_router(upload_files, prefix="/upload", tags=["文件上传API"])
|
||||
my_app.include_router(view, prefix="/view_img", tags=["查看图片"])
|
||||
my_app.include_router(view, tags=["查看图片"])
|
||||
my_app.include_router(user, prefix="/user", tags=["用户管理API"])
|
||||
my_app.include_router(project, prefix="/proj", tags=["项目管理API"])
|
||||
|
||||
|
@ -5,6 +5,15 @@ from jwt import PyJWTError
|
||||
from app.common import reponse_code as rc
|
||||
from app.common import jwt_check as jc
|
||||
|
||||
green = ['/login', '/view_img', 'view_thumb']
|
||||
|
||||
|
||||
def check_green(s: str):
|
||||
for url in green:
|
||||
if url in s:
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
class TokenMiddleware(BaseHTTPMiddleware):
|
||||
|
||||
@ -33,11 +42,3 @@ class TokenMiddleware(BaseHTTPMiddleware):
|
||||
return rc.response_code_view(status.HTTP_401_UNAUTHORIZED, "Token错误或失效,请重新验证")
|
||||
|
||||
|
||||
green = ['/login', '/view_img', 'test']
|
||||
|
||||
|
||||
def check_green(s: str):
|
||||
for url in green:
|
||||
if url in s:
|
||||
return True
|
||||
return False
|
||||
|
@ -14,6 +14,19 @@ def get_image_pager(image: ProjectImagePager, session: Session):
|
||||
return pager
|
||||
|
||||
|
||||
def get_img_url(image_id: int, session: Session):
|
||||
"""
|
||||
根据id获取图片
|
||||
:param image_id:
|
||||
:param session:
|
||||
:return:
|
||||
"""
|
||||
result = session.query(piModel).filter_by(id=image_id).first()
|
||||
sour_url = result.image_url
|
||||
thumb_url = result.thumb_image_url
|
||||
return sour_url, thumb_url
|
||||
|
||||
|
||||
def get_image_list(project_id: int, session: Session):
|
||||
query = session.query(piModel).filter(piModel.project_id == project_id).order_by(asc(piModel.id))
|
||||
image_list = [ProjectImage.from_orm(image).dict() for image in query.all()]
|
||||
|
Reference in New Issue
Block a user