Coverage for docs_src/request_files/tutorial002_an.py: 100%
15 statements
« prev ^ index » next coverage.py v7.6.1, created at 2025-12-04 08:29 +0000
« prev ^ index » next coverage.py v7.6.1, created at 2025-12-04 08:29 +0000
1from typing import List 1abcdefg
3from fastapi import FastAPI, File, UploadFile 1abcdefg
4from fastapi.responses import HTMLResponse 1abcdefg
5from typing_extensions import Annotated 1abcdefg
7app = FastAPI() 1abcdefg
10@app.post("/files/") 1abcdefg
11async def create_files(files: Annotated[List[bytes], File()]): 1abcdefg
12 return {"file_sizes": [len(file) for file in files]} 1opqrstu
15@app.post("/uploadfiles/") 1abcdefg
16async def create_upload_files(files: List[UploadFile]): 1abcdefg
17 return {"filenames": [file.filename for file in files]} 1vwxyzAB
20@app.get("/") 1abcdefg
21async def main(): 1abcdefg
22 content = """ 1hijklmn
23<body>
24<form action="/files/" enctype="multipart/form-data" method="post">
25<input name="files" type="file" multiple>
26<input type="submit">
27</form>
28<form action="/uploadfiles/" enctype="multipart/form-data" method="post">
29<input name="files" type="file" multiple>
30<input type="submit">
31</form>
32</body>
33 """
34 return HTMLResponse(content=content) 1hijklmn