Flask返回文件方法详解

时间:2025-04-13 07:26:08

在 Flask 中返回文件可以通过 send_file 或 send_from_directory 方法实现。以下是详细方法和示例:


1. 使用 send_file 返回文件

这是最直接的方法,适用于返回任意路径的文件。

from flask import Flask, send_file

app = Flask(__name__)

@app.route("/download")
def download_file():
    # 文件路径(绝对路径或相对路径)
    file_path = "path/to/your/file.pdf"
    # as_attachment=True 会强制浏览器下载文件(而不是直接打开)
    return send_file(
        file_path,
        as_attachment=True,
        download_name="custom_filename.pdf"  # 可选:自定义下载时的文件名
    )
关键参数:
  • as_attachment: 是否作为附件下载(默认 False,浏览器可能直接打开文件)。