<p:media value="C:/Users/xyz/Desktop/sample.pdf" width="100%" height="600px">
</p:media>
我正在使用这段代码来加载放在我桌面上的PDF,但它没有从那个地方加载PDF。我找了很多,但找不到原因。因此,作为JSF专家,我想知道是否可以使用primefaces媒体标签从项目文件夹外部加载文件/pdf/图像(任何资源)?如果是,那么怎么做?
注意:我能够加载这个pdf,如果我把它放在我的项目的文件夹。
谢谢
该值必须指向有效的URL,不能指向本地磁盘文件系统路径。浏览器需要从那个URL下载PDF文件。并不是web服务器像你期望的那样在HTML输出中自动包含PDF。
你不能指望每个网页访问者都能在他们本地磁盘文件系统的正确位置上找到那个PDF文件。更不用说它们还运行Windows了。
最简单的方法是将该PDF移动到公共web内容文件夹中(您也将JSF页面放在那里),并按照以下方式引用它
<p:media value="/sample.pdf" width="100%" height="600px" />
假设所讨论的JSF页面是通过http://example.com/context/page.xhtml提供的,那么web浏览器将通过http://example.com/context/sample.pdf下载PDF(并且您需要确保它也可以通过该URL单独获得)。
如果你不想把PDF文件放在你的webapp中,而是放在其他地方,一个不同的选择是将磁盘文件系统的位置作为"虚拟主机"添加到服务器配置中,这样它就可以通过URL访问。您可以在这里找到一些提示:如何显示服务器路径图像到PrimeFaces p:graphicImage?