最近在做一个项目,里面实现一个功能,就是点击按钮后,将一段文本输出为txt附件,供用户保持。
整个功能在普通http方式访问是能够正常下载,而采用安全的https方式访问时,却无法正常下载保持。
在网上搜索了一遍,才发现,原来这是IE的一个bug来的,它不允许采用no-cache方式进行下载,必须采用public方式下载才能够正常,鉴于网络上很多文章所说的都是南辕北辙,下面我将参考代码贴出来供大家参考。
//这两句话表示将文本输出为txt附件格式
response.setContentType("application/text");
response.setHeader("Content-Disposition", "attachment; filename=export.txt;");
//这两句话是关键,这样设置,在https下才能正常下载附件
response.setHeader("cache-control","public");
response.setHeader("Pragma","public");
PrintWriter out = null;
try
{
//获得输出对象
out = response.getWriter();
//这句话用来将文本的内容输出到附件上
out.print("导出附件的内容");
out.flush();
out.close();
}
catch (IOException e)
{
}
finally
{
if (out != null)
{
out.close();
}
}