2014-09-01 57 views
0

问题:加载存储在Web应用程序内的pdf文件时出错

我有一些pdf文件保存在我的web应用程序的资源文件夹中。当我尝试在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> 

JavaScript代码:

document.getElementById("pdfDoc").src=$('#myResourceFile').val()+"'\'"+filename; 

错误:

将PDF不加载作为文件源定界符“\不正确评估。

任何帮助我出错

+1

您的Web应用程序是否托管在本地?毕竟,您在服务器上检索真正的文件系统路径(我通过'gtRealPath'假设您的意思是'getRealPath'),并使用它来解析客户端上的文件。 – mkl 2014-09-01 09:14:51

+0

你确定**双引号**反斜杠吗? ( “ '\'”)。删除'(单引号)“时出现了什么情况。而当你使用*斜杠*而不是反斜杠时会发生什么。 – Ben 2014-09-01 11:48:26

+0

@mkl是的。我是那个空隙! :( – dirai 2014-09-04 08:12:27

回答

0

我正在测试我的本地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访问) as“E:/MyServer/deployments/tmp/app.war/resources/myattmts/fileName.pdf

相关问题