奇怪的问题,JAVA生成PDF文件不能在IE中直接打开

来源:百度知道 编辑:UC知道 时间:2024/05/15 14:59:19
很奇怪的问题,我在JAVA(struts action)代码中生产一个PDF文件,然后把这个文件写入到response中,但是IE页面不能直接显示这个PDF文件,必须要刷新一下页面。
部分代码如下,action return null的,因为没有需要继续处理的页面了。

if (new File(strFilepath).exists())
{
response.setHeader("Content-disposition", "inline; filename=\"" + java.net.URLEncoder.encode(strFileName, "UTF-8") + "\"");
response.setContentType("application/pdf");
java.io.OutputStream os = response.getOutputStream();
InputStream input = new FileInputStream(strFilepath);
int nSize = input.available();
byte[] byteData = new byte[nSize];
input.read(byteData);
input.close();
os.write(byteData);
os.flush();
os.close();
}
不行啊,改成attachment也打不开,说文件没找到,但文件确实在的。
-----
跟路径没关系的,如果路径是错的,怎么刷新都打不开的。现在的问题是第一次访问打不开文件,刷新一下就可以。

这个我以前写过先试试下面的代码,还有问题用BaiduHi加我
把如下代码如下写在jsp页面文件:
<%@page import="java.io.*" %>
<%@page import="java.util.*" %>
<%
response.setContentType("application/pdf");
response.setHeader("Content-Disposition","attachment;filename=输出文件.pdf");
ByteArrayOutputStream baos= (ByteArrayOutputStream)request.getAttribute("pdfOutputStream");
OutputStream output = new DataOutputStream( response.getOutputStream() );
baos.writeTo(output);
output.close();
out.clear();
%>

路径不对改成全路径试试 有的时候 需要转译加\