我有下面的一段代码:
public static void sendDutyTableTemplateBytes(HttpServletRequest request, HttpServletResponse response) throws IOException, SQLException, NamingException
{
String fileName = "duty_table.xls";

response.reset();
response.setContentType(ContentType.content_type_excel_2003);
response.addHeader("Content-Disposition", "attachment; filename=\""+fileName+"\"");

        OutputStream out = response.getOutputStream();
        InputStream inStream = null;
        try {
inStream = request.getSession().getServletContext().getResourceAsStream("/security/templates/"+fileName);
byte[] b = new byte[1024];
int i = 0;
while((i = inStream.read(b)) > 0) {
    out.write(b, 0 ,i);
}
} finally {
if( inStream!=null ){
inStream.close();
}
if( out!=null ){
out.close();
}
}
}
它的功能是:在war里面获取一个文件的流,然后就这个流写向response.getOutputStream()
这样客户端就可以下载到这个文件了.
在客户端使用ie的时候能够正常的下载到文件,使用google浏览器也正常,但是客户端使用firefox的时候却不能下载文件.请问大侠们这个问题怎么解决?

解决方案 »

  1.   

    经过几翻测试发现不是后台java代码的问题,当我在普通的页面发起下载请求时,在firefox也是可以正常下载到文件的.但如果我是在一个showModalDialog()打开的页面发起下载请求的话,就不能够下载(指firefox,ie是可以下载的).虽然是什么原因,但是有什么解决问题的办法呢?
      

  2.   

    发现原来是firefox的bug,之前我使用的是firefox3.6.3,后来尝试安装firefox5.0,装完之后一切正常:)