2
<p:media value="C:/Users/xyz/Desktop/sample.pdf" width="100%" height="600px">    
</p:media>

このコードを使用して、デスクトップに配置された PDF をロードしていますが、その場所から PDF をロードしていません。たくさん検索しましたが、理由を見つけることができませんでした。JSF の専門家から、ロードが可能かどうかを知りたいです。 Primefaces メディア タグを使用して、プロジェクトのフォルダーの外からファイル/pdf/画像 (任意のリソース) を取得しますか? はいの場合、どのように?

注:プロジェクトのフォルダーに配置した場合、このpdfをロードできますが、外部からロードしたいです。
ありがとう

4

1 に答える 1

2

値は、ローカル ディスク ファイル システム パスではなく、有効な URL を指している必要があります。その URL から PDF をダウンロードする必要があるのは Web ブラウザーです。あなたが期待しているように、どういうわけか HTML 出力に PDF を自動インクルードしなければならないのは Web サーバーではありません。

すべての Web ページの訪問者が、その 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 ファイルを Web アプリケーションではなく別の場所に置きたい場合は、そのディスク ファイル システムの場所を「仮想ホスト」としてサーバー構成に正確に追加して、URL で使用できるようにすることです。ここでいくつかのヒントを見つけることができます: How to show the server path image to PrimeFaces p:graphicImage?

于 2012-12-24T04:19:08.627 に答える