Flask文件下载 |
您所在的位置:网站首页 › flask获取文件 › Flask文件下载 |
接着上一篇文章,在完成了文件上传的功能以后,现在要将上传的文件进行处理生成新的文件供用户下载。想要的效果是,显示可下载文件列表,点击即可下载。 显示文件夹下的文件列表首先要获取的是文件夹的路径。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 |