mirror of
https://github.com/fastapi/fastapi.git
synced 2026-04-13 03:20:37 -04:00
✨ Add support for declaring UploadFile parameters without explicit File() (#4469)
This commit is contained in:
committed by
GitHub
parent
59b1f353b3
commit
1bf55200a9
@@ -9,5 +9,5 @@ async def create_file(file: bytes = File(...)):
|
||||
|
||||
|
||||
@app.post("/uploadfile/")
|
||||
async def create_upload_file(file: UploadFile = File(...)):
|
||||
async def create_upload_file(file: UploadFile):
|
||||
return {"filename": file.filename}
|
||||
|
||||
21
docs_src/request_files/tutorial001_02.py
Normal file
21
docs_src/request_files/tutorial001_02.py
Normal file
@@ -0,0 +1,21 @@
|
||||
from typing import Optional
|
||||
|
||||
from fastapi import FastAPI, File, UploadFile
|
||||
|
||||
app = FastAPI()
|
||||
|
||||
|
||||
@app.post("/files/")
|
||||
async def create_file(file: Optional[bytes] = File(None)):
|
||||
if not file:
|
||||
return {"message": "No file sent"}
|
||||
else:
|
||||
return {"file_size": len(file)}
|
||||
|
||||
|
||||
@app.post("/uploadfile/")
|
||||
async def create_upload_file(file: Optional[UploadFile] = None):
|
||||
if not file:
|
||||
return {"message": "No upload file sent"}
|
||||
else:
|
||||
return {"filename": file.filename}
|
||||
19
docs_src/request_files/tutorial001_02_py310.py
Normal file
19
docs_src/request_files/tutorial001_02_py310.py
Normal file
@@ -0,0 +1,19 @@
|
||||
from fastapi import FastAPI, File, UploadFile
|
||||
|
||||
app = FastAPI()
|
||||
|
||||
|
||||
@app.post("/files/")
|
||||
async def create_file(file: bytes | None = File(None)):
|
||||
if not file:
|
||||
return {"message": "No file sent"}
|
||||
else:
|
||||
return {"file_size": len(file)}
|
||||
|
||||
|
||||
@app.post("/uploadfile/")
|
||||
async def create_upload_file(file: UploadFile | None = None):
|
||||
if not file:
|
||||
return {"message": "No upload file sent"}
|
||||
else:
|
||||
return {"filename": file.filename}
|
||||
15
docs_src/request_files/tutorial001_03.py
Normal file
15
docs_src/request_files/tutorial001_03.py
Normal file
@@ -0,0 +1,15 @@
|
||||
from fastapi import FastAPI, File, UploadFile
|
||||
|
||||
app = FastAPI()
|
||||
|
||||
|
||||
@app.post("/files/")
|
||||
async def create_file(file: bytes = File(..., description="A file read as bytes")):
|
||||
return {"file_size": len(file)}
|
||||
|
||||
|
||||
@app.post("/uploadfile/")
|
||||
async def create_upload_file(
|
||||
file: UploadFile = File(..., description="A file read as UploadFile")
|
||||
):
|
||||
return {"filename": file.filename}
|
||||
@@ -12,7 +12,7 @@ async def create_files(files: List[bytes] = File(...)):
|
||||
|
||||
|
||||
@app.post("/uploadfiles/")
|
||||
async def create_upload_files(files: List[UploadFile] = File(...)):
|
||||
async def create_upload_files(files: List[UploadFile]):
|
||||
return {"filenames": [file.filename for file in files]}
|
||||
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ async def create_files(files: list[bytes] = File(...)):
|
||||
|
||||
|
||||
@app.post("/uploadfiles/")
|
||||
async def create_upload_files(files: list[UploadFile] = File(...)):
|
||||
async def create_upload_files(files: list[UploadFile]):
|
||||
return {"filenames": [file.filename for file in files]}
|
||||
|
||||
|
||||
|
||||
37
docs_src/request_files/tutorial003.py
Normal file
37
docs_src/request_files/tutorial003.py
Normal file
@@ -0,0 +1,37 @@
|
||||
from typing import List
|
||||
|
||||
from fastapi import FastAPI, File, UploadFile
|
||||
from fastapi.responses import HTMLResponse
|
||||
|
||||
app = FastAPI()
|
||||
|
||||
|
||||
@app.post("/files/")
|
||||
async def create_files(
|
||||
files: List[bytes] = File(..., description="Multiple files as bytes")
|
||||
):
|
||||
return {"file_sizes": [len(file) for file in files]}
|
||||
|
||||
|
||||
@app.post("/uploadfiles/")
|
||||
async def create_upload_files(
|
||||
files: List[UploadFile] = File(..., description="Multiple files as UploadFile")
|
||||
):
|
||||
return {"filenames": [file.filename for file in files]}
|
||||
|
||||
|
||||
@app.get("/")
|
||||
async def main():
|
||||
content = """
|
||||
<body>
|
||||
<form action="/files/" enctype="multipart/form-data" method="post">
|
||||
<input name="files" type="file" multiple>
|
||||
<input type="submit">
|
||||
</form>
|
||||
<form action="/uploadfiles/" enctype="multipart/form-data" method="post">
|
||||
<input name="files" type="file" multiple>
|
||||
<input type="submit">
|
||||
</form>
|
||||
</body>
|
||||
"""
|
||||
return HTMLResponse(content=content)
|
||||
35
docs_src/request_files/tutorial003_py39.py
Normal file
35
docs_src/request_files/tutorial003_py39.py
Normal file
@@ -0,0 +1,35 @@
|
||||
from fastapi import FastAPI, File, UploadFile
|
||||
from fastapi.responses import HTMLResponse
|
||||
|
||||
app = FastAPI()
|
||||
|
||||
|
||||
@app.post("/files/")
|
||||
async def create_files(
|
||||
files: list[bytes] = File(..., description="Multiple files as bytes")
|
||||
):
|
||||
return {"file_sizes": [len(file) for file in files]}
|
||||
|
||||
|
||||
@app.post("/uploadfiles/")
|
||||
async def create_upload_files(
|
||||
files: list[UploadFile] = File(..., description="Multiple files as UploadFile")
|
||||
):
|
||||
return {"filenames": [file.filename for file in files]}
|
||||
|
||||
|
||||
@app.get("/")
|
||||
async def main():
|
||||
content = """
|
||||
<body>
|
||||
<form action="/files/" enctype="multipart/form-data" method="post">
|
||||
<input name="files" type="file" multiple>
|
||||
<input type="submit">
|
||||
</form>
|
||||
<form action="/uploadfiles/" enctype="multipart/form-data" method="post">
|
||||
<input name="files" type="file" multiple>
|
||||
<input type="submit">
|
||||
</form>
|
||||
</body>
|
||||
"""
|
||||
return HTMLResponse(content=content)
|
||||
Reference in New Issue
Block a user