UploadFile 类¶
你可以将*路径操作函数*的参数类型定义为 UploadFile,以接收请求中的文件。
您可以直接从 fastapi 导入它。
from fastapi import UploadFile
fastapi.UploadFile ¶
UploadFile(file, *, size=None, filename=None, headers=None)
基类: UploadFile
请求中上传的文件。
将其定义为*路径操作函数*(或依赖项)的参数。
如果你使用的是常规的 def 函数,可以使用 upload_file.file 属性来访问原始的 Python 标准文件(阻塞式,非异步),这对于非异步代码非常有用且必要。
在 FastAPI 文档的请求文件部分阅读更多相关信息。
示例¶
from typing import Annotated
from fastapi import FastAPI, File, UploadFile
app = FastAPI()
@app.post("/files/")
async def create_file(file: Annotated[bytes, File()]):
return {"file_size": len(file)}
@app.post("/uploadfile/")
async def create_upload_file(file: UploadFile):
return {"filename": file.filename}
源代码位于 starlette/datastructures.py
417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 | |
read async ¶
read(size=-1)
从文件中读取一些字节。
为支持 await,与异步兼容,此操作在线程池中运行。
| 参数 | 描述 |
|---|---|
size
|
要从文件中读取的字节数。
类型: |
源代码位于 fastapi/datastructures.py
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | |
write async ¶
write(data)
向文件中写入一些字节。
通常你不会对从请求中读取的文件使用此方法。
为支持 await,与异步兼容,此操作在线程池中运行。
| 参数 | 描述 |
|---|---|
data
|
要写入文件的字节。
类型: |
源代码位于 fastapi/datastructures.py
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | |
seek async ¶
seek(offset)
移动到文件中的某个位置。
下一次读取或写入将从该位置开始。
为支持 await,与异步兼容,此操作在线程池中运行。
| 参数 | 描述 |
|---|---|
offset
|
要在文件中定位到的字节位置。
类型: |
源代码位于 fastapi/datastructures.py
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 | |
close async ¶
close()
关闭文件。
为支持 await,与异步兼容,此操作在线程池中运行。
源代码位于 fastapi/datastructures.py
132 133 134 135 136 137 138 | |