解决小程序文件上传名字乱码的问题
This commit is contained in:
parent
94635efa90
commit
f789c60a3e
|
@ -1,6 +1,6 @@
|
||||||
import os
|
import os
|
||||||
from pathlib import Path
|
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 sqlalchemy.orm import Session
|
||||||
from Crud import FileCrud
|
from Crud import FileCrud
|
||||||
from Schemas.UserSchemas import TokenData
|
from Schemas.UserSchemas import TokenData
|
||||||
|
@ -8,7 +8,7 @@ from Utils.CommonUtils import file_md5
|
||||||
from Utils.SqlAlchemyUtils import get_db
|
from Utils.SqlAlchemyUtils import get_db
|
||||||
from Schemas import FileSechemas
|
from Schemas import FileSechemas
|
||||||
from Utils.AuthUtils import token_data_depend
|
from Utils.AuthUtils import token_data_depend
|
||||||
|
from base64 import b64decode
|
||||||
router = APIRouter(prefix="/api/daily/file", tags=["文件"])
|
router = APIRouter(prefix="/api/daily/file", tags=["文件"])
|
||||||
allow_file_type = {
|
allow_file_type = {
|
||||||
'image',
|
'image',
|
||||||
|
@ -19,8 +19,10 @@ allow_file_type = {
|
||||||
|
|
||||||
|
|
||||||
@router.post('/file_upload', response_model=FileSechemas.UserFileInfo, summary='文件上次')
|
@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)):
|
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
|
mime_type = file.content_type
|
||||||
common_type, file_type = file.content_type.split('/')
|
common_type, file_type = file.content_type.split('/')
|
||||||
if common_type not in allow_file_type:
|
if common_type not in allow_file_type:
|
||||||
|
@ -44,7 +46,7 @@ def file_upload(file: UploadFile = File(...),
|
||||||
else:
|
else:
|
||||||
break
|
break
|
||||||
user_file = FileCrud.add_file(db,
|
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,
|
mime_type=mime_type,
|
||||||
user_id=token_data.email, common_type=common_type,
|
user_id=token_data.email, common_type=common_type,
|
||||||
file_url=file_url))
|
file_url=file_url))
|
||||||
|
|
Loading…
Reference in New Issue