Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 加载存储在web应用程序中的pdf文件时出错_Java_Javascript_Jsp_Pdf - Fatal编程技术网

Java 加载存储在web应用程序中的pdf文件时出错

Java 加载存储在web应用程序中的pdf文件时出错,java,javascript,jsp,pdf,Java,Javascript,Jsp,Pdf,问题: 我的web应用程序的resources文件夹中保存了许多pdf文件。当我试图在jsp中显示该文件时,我无法显示。下面是代码片段: jsp文件: <input type="hidden" id="myResourceFile" value="<%=request.getServletContext.getRealPath("/resources/myattmts/")%>"/> <div id="myrowid"> <em

问题:

我的web应用程序的resources文件夹中保存了许多pdf文件。当我试图在jsp中显示该文件时,我无法显示。下面是代码片段:

jsp文件:

    <input type="hidden" id="myResourceFile" value="<%=request.getServletContext.getRealPath("/resources/myattmts/")%>"/>

    <div id="myrowid">
    <embed TYPE="application/pdf" align="middle" width=100% style="height:400px" id="pdfDoc"/>
</div>
错误:

pdf未加载,因为文件源分隔符“\的计算结果不正确


任何我出错的帮助

我正在本地测试web应用程序。但是,在构建和发布之后,它将部署在特定节点上

这里的问题是pdf文件只能从jsp中的应用程序上下文检索

但是,当我使用request.getServletContext.getRealPath/resources/myattmts/时,它会尝试访问tmp/deployment服务器中的实际war文件,即应用程序运行和文件存在的实际物理位置。而且无法从那里读到它

相反,我将jsp中隐藏变量myResourceFile的值更改为应用程序上下文路径,如下所示

jsp change:
<input type="hidden" id="myResourceFile" value="<%=request.getContextPath("/resources/myattmts/")%>"/>

So the file path now reads as "`http://localhost:8080/app-name/resources/myattmts/fileName.pdf"
而不是前一个案例中jsp无法访问的实际物理路径
如E:/MyServer/deployments/tmp/app.war/resources/myattmts/fileName.pdf

您的web应用程序是否在本地托管?在您检索服务器上的实际文件系统路径之后,我假定gtRealPath是指getRealPath,并使用它在客户端上对文件进行寻址。您确定要将反斜杠双引号引起来吗?“\”。删除“单引号”后会发生什么。当你用斜杠而不是反斜杠时会发生什么。@mkl是的。我想这就是缺陷!:@本,我没试过。而是使用控制器中的File.SEPARATOR在文件名之前加上斜杠
jsp change:
<input type="hidden" id="myResourceFile" value="<%=request.getContextPath("/resources/myattmts/")%>"/>

So the file path now reads as "`http://localhost:8080/app-name/resources/myattmts/fileName.pdf"