tomcat服务器端设置 content-disposition inline ,客户端 win7 ie8 中打开 word 附件,会提示安全框,要求输入凭据。
经过测试,只有word 附件才会有问题,其他的附件不会,临时解决办法:
byte[] content = new byte[8192];
int i = 0;
java.io.File file = new java.io.File("c:/test.doc");
java.io.FileInputStream is = new java.io.FileInputStream(file);
response.setContentType("text/plain");//关键点,本来word附件的类型是 application/msword,只是为了“欺骗”ie 才这样改。实际下载的时候浏览器会根据文件的扩展名来找到word 程序打开附件
response.addHeader("Content-Disposition", "inline; filename=test.doc");
response.addHeader("Connection", "keep-alive");//用长连接,整个word 下载一次完成
response.addHeader("Cache-Control","private");
response.setContentLength((int)file.length());
java.io.OutputStream ou = response.getOutputStream();
while ((i = is.read(content)) != -1) {
ou.write(content, 0, i);
ou.flush();
}
is.close();
ou.close();