flask下载excel文件

flask提供了send_from_directory方法来下载文件,使用很方便,但是在下载的文件名中包含中文就会出问题。
修改之前的代码:

send_from_directory(dir_path, file_name, as_attachment=True,
                            attachment_filename="中文名.xlsx")
# dir_path: 要下载的文件的文件夹
# file_name: 要下载的文件名     
# attachment_filename:下载之后的文件名 即浏览器下载的时候展示的文件名

如果不对attachment_filename的值做处理的话,浏览器会识别不出来中文,下载的文件名不对

处理之后的代码:

from urllib.parse import quote

download_file_name = "试卷分析-{}.xlsx"
download_file_name = quote(download_file_name)

rv = send_from_directory(dir_path, file_name, as_attachment=True,
attachment_filename=download_file_name)

rv.headers['Content-Disposition'] = "; filename*=utf-8''%s" % (download_file_name)

这样下载到本地的文件名就是attachment_filename指定的文件名了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值