📅  最后修改于: 2023-12-03 14:41:13.509000             🧑  作者: Mango
在 Flask 中,可以通过 send_file()
函数实现文件下载。本文将介绍如何在 Flask 中实现文件下载功能。
为了方便演示,我们先创建一个包含文件下载功能的 Flask 应用。在应用根目录下创建一个 download
目录,并在其中添加一个任意文件,以 example.txt
为例。
import os
from flask import Flask, send_file
app = Flask(__name__)
@app.route('/download/<filename>')
def download(filename):
filepath = os.path.join(os.getcwd(), 'download', filename)
return send_file(filepath, as_attachment=True)
if __name__ == '__main__':
app.run()
在应用中,我们将 /download/<filename>
路由映射到 download()
函数中。当用户访问 /download/example.txt
时,应用会读取文件并返回给用户。
现在我们启动应用,访问 /download/example.txt
,应用会自动下载文件并将其保存至本地。
如果需要更改下载文件的文件名,可以在 send_file()
函数中设置参数 attachment_filename
,如下所示:
@app.route('/download/<filename>')
def download(filename):
filepath = os.path.join(os.getcwd(), 'download', filename)
return send_file(filepath, attachment_filename='new_name.txt', as_attachment=True)
send_file()
函数的 as_attachment
参数设置为 True
,表示下载的文件会作为附件进行下载。<a>
标签来访问,或者通过特殊处理跳过浏览器的防护机制。