Flask文件下载

您所在的位置:网站首页 flask获取文件 Flask文件下载

Flask文件下载

2023-03-04 00:36| 来源: 网络整理| 查看: 265

接着上一篇文章,在完成了文件上传的功能以后,现在要将上传的文件进行处理生成新的文件供用户下载。想要的效果是,显示可下载文件列表,点击即可下载。

显示文件夹下的文件列表

首先要获取的是文件夹的路径。app.root_path会获取当前的工程文件路径,用os.path.join加文件夹名拼接成一个完整路径。再使用os.listdir返回包含的文件和文件夹的列表。将列表传入HTML文件中逐一显示。

获取文件列表。

app.config['UPLOAD_PATH'] = os.path.join(app.root_path,'uploads') download_file_list = os.listdir(app.config['UPLOAD_PATH'])

在页面上显示。

Download 可下载文件列表 {% for file in file_list %} {{ file }} {% endfor %} 点击文件下载

用户可在页面上选择文件下载。文件下载使用flask自带的send_from_directory,有一个需要注意的坑是对中文编码的不支持。所以要使用make_response。

send_from_directory需要两个参数,第一个文件的目录,第二个是文件名(含扩展名)。make_response建立一个response对象,将filename编码转为latin-1。

response = make_response(send_from_directory(file_path,filename.encode('utf-8').decode('utf-8'),as_attachment=True)) response.headers["Content-Disposition"] = "attachment; filename={}".format(filename.encode().decode('latin-1')) return response



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3