欢迎访问宙启技术站
智能推送

学习Python中的FileResponse()函数的用法

发布时间:2023-12-12 14:14:13

在Python中,FileResponse()函数用于返回一个FileResponse对象,这是一个包含文件内容的响应对象。该函数可以用于将文件作为HTTP响应发送给客户端。

FileResponse()函数的基本用法如下:

from fastapi import FastAPI
from fastapi.responses import FileResponse

app = FastAPI()

@app.get("/download")
async def download_file():
    file_path = "path/to/file.pdf"
    return FileResponse(file_path)

在这个例子中,我们创建了一个FastAPI应用,并使用FileResponse()函数将一个PDF文件作为响应返回给客户端。当客户端访问/download路径时,download_file()函数会被调用,并返回FileResponse(file_path)作为响应。

FileResponse()函数的参数:

- path:文件路径,可以是一个字符串,也可以是一个Path对象。这是要发送给客户端的文件的路径。

- filename:文件名,可以是一个字符串,也可以是None。如果指定了该参数,客户端收到的文件名将与之匹配。如果未指定该参数,则使用文件路径中的文件名。

- headers:HTTP头信息,可以是一个字典。这允许您为返回的响应配置自定义标头。

- media_type:文件的媒体类型,可以是一个字符串。默认情况下,FastAPI将根据文件扩展名推断媒体类型。但是,您也可以手动指定它。

这里有一个更详细的示例,演示了如何使用FileResponse()函数,以及如何指定自定义的文件名和媒体类型:

from fastapi import FastAPI
from fastapi.responses import FileResponse

app = FastAPI()

@app.get("/download")
async def download_file():
    file_path = "/path/to/file.png"
    media_type = "image/png"
    headers = {
        "Content-Disposition": "attachment; filename=myfile.png"
    }
    return FileResponse(file_path, media_type=media_type, headers=headers)

在这个例子中,我们返回了一个名为"myfile.png"的PNG图像文件作为响应。我们使用media_type参数指定了媒体类型为"image/png",并使用headers参数指定了Content-Disposition标头,以便在客户端上通过filename进行下载。

总之,FileResponse()函数是一个非常有用的工具,可以方便地将文件作为HTTP响应发送给客户端。您可以使用该函数指定文件路径、文件名和媒体类型,并配置自定义的HTTP标头。