隐藏真实文件地址

This commit is contained in:
lan-air
2022-12-11 14:40:14 +08:00
parent 88e7ea6f87
commit 70b931394f
+15 -1
View File
@@ -6,7 +6,7 @@ from fastapi import FastAPI, Depends, UploadFile, Form, File
from sqlalchemy import or_ from sqlalchemy import or_
from sqlalchemy.orm import Session from sqlalchemy.orm import Session
from starlette.requests import Request from starlette.requests import Request
from starlette.responses import HTMLResponse from starlette.responses import HTMLResponse, FileResponse
import random import random
from starlette.staticfiles import StaticFiles from starlette.staticfiles import StaticFiles
@@ -137,6 +137,18 @@ def ip_error(ip):
return ip_info['count'] return ip_info['count']
@app.get('/file')
async def get_file(code: str, db: Session = Depends(get_db)):
file = db.query(database.Codes).filter(database.Codes.code == code).first()
if file:
if file.type == 'text':
return {'code': code, 'msg': '查询成功', 'data': file.text}
else:
return FileResponse('.' + file.text)
else:
return {'code': 404, 'msg': '口令不存在'}
@app.post('/') @app.post('/')
async def index(request: Request, code: str, db: Session = Depends(get_db)): async def index(request: Request, code: str, db: Session = Depends(get_db)):
ip = request.client.host ip = request.client.host
@@ -152,6 +164,8 @@ async def index(request: Request, code: str, db: Session = Depends(get_db)):
return {'code': 404, 'msg': '取件码已过期,请联系寄件人'} return {'code': 404, 'msg': '取件码已过期,请联系寄件人'}
info.count -= 1 info.count -= 1
db.commit() db.commit()
if info.type != 'text':
info.text = f'/file?code={code}'
return { return {
'code': 200, 'code': 200,
'msg': '取件成功,请点击""查看', 'msg': '取件成功,请点击""查看',