问题:
我的网页应用的资源文件夹中保存了许多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>
javascript代码:
document.getElementById("pdfDoc").src=$('#myResourceFile').val()+"'\'"+filename;
错误:
由于未正确评估文件来源分隔符&#39; \,因此无法加载pdf。
我出错的任何帮助
答案 0 :(得分: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无法访问)
作为“E:/MyServer/deployments/tmp/app.war/resources/myattmts/fileName.pdf
”