Java 使用window.open()打开PDF文件
我有一个生成PDF文件并将其存储在Java 使用window.open()打开PDF文件,java,jsp,tomcat,struts2,liferay,Java,Jsp,Tomcat,Struts2,Liferay,我有一个生成PDF文件并将其存储在/temp文件夹中的方法。我正在使用tomcat。我想打开PDF文件。我已经使用JavaScript中的window.open()方法尝试了这一点。但单击超链接时,它表示未找到请求的资源 我使用以下行将PDF文件存储在/temp文件夹中(当然文件会生成并保存在该位置): 现在,在JSP中,我尝试以下操作: 但它显示了以下错误: The requested resource was not found. http://localhost:8080/temp
/temp
文件夹中的方法。我正在使用tomcat。我想打开PDF文件。我已经使用JavaScript中的window.open()
方法尝试了这一点。但单击超链接时,它表示未找到请求的资源
我使用以下行将PDF文件存储在/temp
文件夹中(当然文件会生成并保存在该位置):
现在,在JSP中,我尝试以下操作:
但它显示了以下错误:
The requested resource was not found.
http://localhost:8080/temp/report.pdf
编辑:
尝试了以下操作:
在JSP页面中,打开文件的下载链接:
struts.xml中的:
/WEB-INF/view/pdfDownload.jsp
包含下载PDF文件的JavaScript的JSP页面:
= 0)
{
位=inputStream.read();
servletOutputStream.write(位);
}
//System.out.println(“+”位);
}
捕获(异常ioe)
{
//ioe.printStackTrace(系统输出);
}
System.out.println(“\n”+i+“已发送字节”);
System.out.println(“\n”+f.length()+“已发送字节”);
servletOutputStream.flush();
//out.close();
inputStream.close();
}
捕获(例外e)
{
}
%>
现在,当我单击下载链接时,什么也没有发生,它重定向到JSP页面,但是下载的弹出窗口没有出现。想想你在做什么。你真的认为打字http://www.google.com/tmp/secretReport.pdf
在浏览器地址栏中,您可以访问google服务器文件系统上/tmp
目录中的一些秘密报告
您不能像这样通过HTTP访问服务器的文件系统。您需要的是一个由浏览器调用的servlet,它读取PDF文件并在HTTP响应中发送它。想想您在做什么。你真的认为打字http://www.google.com/tmp/secretReport.pdf
在浏览器地址栏中,您可以访问google服务器文件系统上/tmp
目录中的一些秘密报告
您不能像这样通过HTTP访问服务器的文件系统。您需要的是一个由浏览器调用的servlet,它读取PDF文件并在HTTP响应中发送它。您有什么问题:
该文件是在服务器上创建的,因此无法在客户端上打开
使用JavaScript
首先需要下载该文件,您需要提供映射到该操作的url,可能带有要下载的文件的参数。如果您在另一个操作中创建了一个文件,您可以在JSP中显示要下载的文件名。只需将action属性用作文件名
不鼓励使用Scriptlet中的Java代码,请使用此代码实现用于返回流的操作
为了你的幸福,有一个秘密。您所需要的只是将其应用到您的场景中 你做错了什么:
该文件是在服务器上创建的,因此无法在客户端上打开
使用JavaScript
首先需要下载该文件,您需要提供映射到该操作的url,可能带有要下载的文件的参数。如果您在另一个操作中创建了一个文件,您可以在JSP中显示要下载的文件名。只需将action属性用作文件名
不鼓励使用Scriptlet中的Java代码,请使用此代码实现用于返回流的操作
为了你的幸福,有一个秘密。您所需要的只是将其应用到您的场景中 我看到其他人已经回答了你的结果,但我看到你很难理解他们的答案。那么,我有更简单的开始
只需在您的网页(站点根目录)目录中创建一个名为/temp
的文件夹,然后放入PDF(report.PDF
)即可使用该链接
现在,您只需使用简单的文件IO将报告放入该文件中即可
例如,如果您编写代码在temp
目录(已在web根目录中提供)中编写名为xyz.PDF
的PDF文件,则访问url将为/temp/xyz.PDF
这里有一个小提示。我看到其他人已经回答了你的结果,但我看到你在理解他们的答案方面有困难。那么,我有更简单的开始
只需在您的网页(站点根目录)目录中创建一个名为/temp
的文件夹,然后放入PDF(report.PDF
)即可使用该链接
现在,您只需使用简单的文件IO将报告放入该文件中即可
例如,如果您编写代码在temp
目录(已在web根目录中提供)中编写名为xyz.PDF
的PDF文件,则访问url将为/temp/xyz.PDF
这里有一个小提示。请在句子开头加一个大写字母。也可以用大写字母表示I,缩写和首字母缩略词如JEE或WAR。这使人们更容易理解和帮助。请在句子开头加一个大写字母。也可以用大写字母表示I,缩写和首字母缩略词如JEE或WAR。这使人们更容易理解和帮助。你能给我举个例子吗。我在谷歌上搜索了很多,但没有找到任何有效的示例。请参见示例。不要使用JSP将文件发送到输出流。直接使用Struts操作。thnks。你能给我举个例子吗。我在谷歌上搜索了很多,但没有找到任何有效的例子
The requested resource was not found.
http://localhost:8080/temp/report.pdf