Django实现下载程序及下载文件名包含中文解决办法
from django.http import FileResponse
def get_program(request):
if request.method == "GET":
#查询该程序的路径
e_program = E_Program.objects.all().order_by("-id")[0]
path = str(e_program.file)
print(path)
#打开该文件并读取
f = open(path, 'rb')
#使用FileResponse对读取的文件内容进行处理
response = FileResponse(f)
#使用octet-stream流的方式传输数据
response['Content-Type'] = 'application/octet-stream'
#在filename中输入自己的文件名,可以包含中文
filename = 'attachment; filename=快件操作助手.exe'
#设置文件名的中文编码方式
response['Content-Disposition'] = filename.encode('utf-8', 'ISO-8859-1')
return response
最终效果图:实现了django下载程序,任意格式,如果要限制文件的种类,可以正则筛选文件的后缀名,如果是图片文件,则还需对里面的内容进行校验,防止图片里面有非法代码。