在 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
,浏览器可能直接打开文件)。