今天在,解决一个关于导出SQL数据,生成excle文件中
参考了这篇文章:跳转
1.Content-Disposition
response.setHeader("Content-Disposition",
"attachment;fileName=" +
URLEncoder.encode("test"+".xls", "UTF-8"));
Content-disposition是 MIME 协议的扩展,MIME 协议指示 MIME 用户代理如何显示附加的文件。当 Internet Explorer 接收到头时,它会激活文件下载对话框,它的文件名框自动填充了头中指定的文件名
2.application/binary
response.setContentType(MIME)的作用是使客户端浏览器,区分不同种类的数据,并根据不同的MIME调用浏览器内不同的 程 序嵌入模块来处理相应的数据。例如web浏览器就是通过MIME类型来判断文件是GIF图片
像,Excle的.xls 我测试了使用 application/binary,和application/vnd.ms-excel都可以成功,关于文件类型,可以百度,不过在tomcat的conf中web.xml中有说明,关于各种文件类型的ContentType指定
response.setContentType("application/vnd.ms-excel;
charset=UTF-8");
// application/binary
3.要想生成文件,数据内容要写入响应流中,
流的问题我也不是很懂,在这里,用了 ServletOutputStream
所以,关于文件下载,
1.Content-Disposition ==> 告诉浏览器我要下载
2.application/binary ==> 指定下载名和下载类型
3.数据内容写入响应流中
4.这是个人理解