fastapi 上传文件
时间: 2024-09-20 21:11:12 浏览: 50
FastAPI上传文件的同时,带上body
FastAPI是一个轻量级的Web框架,它支持文件上传功能,允许用户通过HTTP请求将文件数据发送到服务器。在FastAPI中处理文件上传通常涉及以下几个步骤:
1. 定义路由:创建一个POST路由,用于接收文件上传请求,比如 `/api/upload`。
```python
from fastapi import FastAPI, File, UploadFile
app = FastAPI()
@app.post("/api/upload")
async def create_upload_file(file: UploadFile = File(...)):
# ... 这里会处理文件内容和保存操作
```
`File`装饰器告诉FastAPI这是个文件字段,并且`UploadFile`对象会被包含在请求体中。
2. 接收文件:`file`参数是一个`UploadFile`实例,包含了文件名、大小等信息。你可以通过`file.read()`读取文件内容。
3. 存储文件:将接收到的文件数据保存到服务器指定的位置,如本地磁盘、数据库或云存储服务。
4. 错误处理:添加适当的错误处理代码,例如检查文件是否过大、验证文件类型等。
```python
try:
file_content = await file.read()
filename = file.filename
save_path = "./uploads/" + filename
with open(save_path, "wb") as f:
f.write(file_content)
except Exception as e:
return {"error": str(e)}
```
阅读全文