from typing import List
import uvicorn
from fastapi import FastAPI, File, UploadFile
from starlette.responses import HTMLResponse
app = FastAPI()
@app.post("/file/")
async def create_files(file: bytes = File(...)):
with open('./base.jpg', 'wb') as f:
f.write(file)
return {"fileSize": len(file)}
@app.post('/uploadFile')
async def uploadFile(file: UploadFile = File(...)):
"""缺少验证是否上传文件"""
content = await file.read()
with open('./test.jpg', 'wb') as f:
f.write(content)
return {"filename": file.filename}
@app.post("/files/")
async def create_files(
files: List[bytes] = File(...)
):
print(type(files))
print(files)
return {"file_sizes": [len(file) for file in files]}
@app.post("/uploadfiles/")
async def create_upload_files(
files: List[UploadFile] = File(...)
):
return {"filenames": [file.filename for file in files]}
@app.get("/")
async def main():
content = """
<body>
<form action="/file/" enctype="multipart/form-data" method="post">
<input name="file" type="file">
<input type="submit" value="file上传">
</form>
<form action="/files/" enctype="multipart/form-data" method="post">
<input name="files" type="file" multiple>
<input type="submit" value="files上传">
</form>
<form action="/uploadFile/" enctype="multipart/form-data" method="post">
<input name="file" type="file">
<input type="submit" value="uploadFile上传">
</form>
<form action="/uploadfiles/" enctype="multipart/form-data" method="post">
<input name="files" type="file" multiple>
<input type="submit" value="uploadfiles上传">
</form>
</body>
"""
return HTMLResponse(content=content)
if __name__ == '__main__':
uvicorn.run(app)
fastAPI 文件上传
最新推荐文章于 2024-05-06 14:27:30 发布