解决小程序文件上传名字乱码的问题
This commit is contained in:
parent
94635efa90
commit
f789c60a3e
|
@ -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))
|
||||
|
|
Loading…
Reference in New Issue