fastapi文件下载
时间: 2024-08-28 09:01:02 浏览: 77
FastAPI是一个用于构建Web API的现代高性能Python框架,它本身并不直接提供文件下载功能。然而,你可以结合FastAPI与其他库如`starlette.responses`或第三方库如`python-multipart`、`aiofiles`来处理文件下载。
下面是一个简单的示例,展示如何在FastAPI中设置文件下载:
```python
from fastapi import FastAPI, File, UploadFile
import uvicorn
app = FastAPI()
@app.post("/download/")
async def download_file(file: UploadFile = File(...)):
filename = file.filename
content = await file.read()
response = Response(
content=content,
headers={"Content-Disposition": f"attachment; filename={filename}"},
media_type="application/octet-stream"
)
return response
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)
```
在这个例子中,当用户发送一个POST请求到`/download/`并上传一个文件时,服务会返回该文件,并将其设置为响应头中的附件,允许浏览器自动下载。
阅读全文