解决小程序文件上传名字乱码的问题

This commit is contained in:
Administrator 2023-05-19 09:15:42 +08:00
parent 94635efa90
commit f789c60a3e
1 changed files with 6 additions and 4 deletions

View File

@ -1,6 +1,6 @@
import os
from pathlib import Path
from fastapi import APIRouter, UploadFile, File, Depends, HTTPException
from fastapi import APIRouter, UploadFile, File, Depends, HTTPException, Header
from sqlalchemy.orm import Session
from Crud import FileCrud
from Schemas.UserSchemas import TokenData
@ -8,7 +8,7 @@ from Utils.CommonUtils import file_md5
from Utils.SqlAlchemyUtils import get_db
from Schemas import FileSechemas
from Utils.AuthUtils import token_data_depend
from base64 import b64decode
router = APIRouter(prefix="/api/daily/file", tags=["文件"])
allow_file_type = {
'image',
@ -19,8 +19,10 @@ allow_file_type = {
@router.post('/file_upload', response_model=FileSechemas.UserFileInfo, summary='文件上次')
def file_upload(file: UploadFile = File(...),
def file_upload(name: str = Header(None), file: UploadFile = File(...),
db: Session = Depends(get_db), token_data: TokenData = Depends(token_data_depend)):
if name:
name=b64decode(name.encode('utf-8')).decode('utf-8')
mime_type = file.content_type
common_type, file_type = file.content_type.split('/')
if common_type not in allow_file_type:
@ -44,7 +46,7 @@ def file_upload(file: UploadFile = File(...),
else:
break
user_file = FileCrud.add_file(db,
FileSechemas.UserFileCreate(md=file_md, file_name=file.filename,
FileSechemas.UserFileCreate(md=file_md, file_name=name or file.filename,
mime_type=mime_type,
user_id=token_data.email, common_type=common_type,
file_url=file_url))