Java Web 以流方式下载文件时的 HTTP 头设置时间:2025—5—18 23:05:35 点击量:2 如非注明,本站文章均为原创,转载请注明出处.本站地址:yshjava 的个人博客主页 http://www。yshjava.cn本文地址:http://www.yshjava。cn/post/417.html做 Java Web 开发时常常会遇到以流的方式下载文件的需求,此时除了将文件流输出到 response对象的 outputStream 中外,还需要设置相关的响应头信息,包括文档类型、文档说明.简单的范例代码如下://文件名String fileName = "第三季度季度财务报表”;//以 ISO 编码转码中文,否则会出现附件文件名中文乱码String encodedfileName = new String(fileName.getBytes(), "ISO8859-1");//重置 responseresponse.reset();//设置文档类型为 gb2312 编码的输出流response。setContentType("application/OCTET—STREAM;charset=gb2312”);//添加 header 参数,禁用缓存response.setHeader("pragma", "no—cache");//添加 header 参数,表明这是一个附件,以及附件的文件名是什么response.addHeader("Content-Disposition", "attachment;filename=\"" + encodedfileName + "。xls\”");//将数据写入流中。.。这里补充两点知识.第一点是最后一个 header 参数 Content—disposition.Content—disposition 是 MIME 协议的扩展,MIME 协议指示 MIME 用户代理如何显示附加的文件。当 Internet Explorer 接收到头时,它会激活文件下载对话框,它的文件名框自动填充了头中指定的文件名.(请注意,这是设计导致的;无法使用此功能将文档保存到用户的计算机上,而不向用户询问保存位置。)Content-Disposition 就是当用户想把请求所得的内容存为一个文件的时候提供一个默认的文件名,这一点很多时候都相当有用.第二点是 HTTP 协议中的 Content—Type,这里可以参考一下开源中国在线工具网站的一份对比表,非常详细:《HTTP Content-Type》