FileResponse()函数在Python中的文件传输实例
发布时间:2023-12-24 16:38:12
FileResponse()函数是Flask框架中用于文件传输的一个函数。它可以将文件发送给客户端,以供用户下载或查看。
下面是一个使用FileResponse()函数的示例:
from flask import Flask, send_from_directory
from werkzeug.utils import secure_filename
import os
app = Flask(__name__)
@app.route('/download/<filename>', methods=['GET'])
def download(filename):
# 检查文件是否存在
if os.path.isfile(os.path.join(app.config['UPLOAD_FOLDER'], filename)):
# 发送文件给客户端
return send_from_directory(app.config['UPLOAD_FOLDER'], filename, as_attachment=True)
else:
return 'File not found!'
if __name__ == '__main__':
# 设置上传文件夹路径
app.config['UPLOAD_FOLDER'] = 'uploads'
app.run(debug=True)
在上面的示例中,我们定义了一个路由'/download/<filename>'来接收用户请求下载文件。如果文件存在于服务器的上传文件夹中,则使用FileResponse()函数发送该文件给客户端。如果文件不存在,则返回'File not found!'。
在这个示例中,我们还使用了Flask的send_from_directory()函数来设置文件路径并发送文件。send_from_directory()函数的 个参数是文件所在的文件夹路径,第二个参数是文件名,第三个参数as_attachment设置为True表示将文件作为附件发送给客户端,这样用户就可以下载该文件。
另外,我们还指定了一个UPLOAD_FOLDER来设置上传文件夹的路径,这样可以方便地管理上传的文件。
要运行这个示例,先确保安装了Flask,然后在终端中运行python app.py。这将启动一个Flask的开发服务器。然后在浏览器中访问http://localhost:5000/download/<filename>,其中<filename>是所需下载的文件名。如果文件存在于上传文件夹中,它将自动下载到用户的计算机中。
总结来说,FileResponse()函数是Flask中用于文件传输的一个方便的函数。它可以通过指定文件路径和附件选项将文件发送给客户端,实现文件的下载功能。
