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

时间:2014-09-01 08:02:07

标签: java javascript jsp pdf

问题:

我的网页应用的资源文件夹中保存了许多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。

我出错的任何帮助

1 个答案:

答案 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