2009-12-16 51 views
0

我有一些問題讓我的pdf文件顯示在我的jsp頁面。我將pdf保存在我的tomcat服務器上,其文件位置如下 c:/ tomcat 6.0/webapps/appname/reports/saved/filename.pdf 我試圖打開該文件(最好不使用c:位置)而在使用下面的標籤我的JSP文件的iframe中顯示它...在Tomcat上的jsp iframe中的pdf也struts2

<iframe src="../appname/reports/saved/filename.pdf"></iframe> 

我會擔心以後上漿:)

,但我發現所請求的資源不可用。

我敢肯定,這是愚蠢的,我只是沒有看到,我真的很感激任何幫助,我可以得到。

感謝,

陰影

回答

0

好吧,你們都是部分正確的,但真正的答案是...... URL文件夾是區分大小寫的......我限制文件夾名稱和資源被發現!

感謝您的幫助!

1

請求的資源不可用

這基本上意味着,無論是網址有誤或該資源實際上是不存在的。爲了排除第一個,首先使用絕對 URL對其進行測試,從而包括協議和域名,例如, http://example.com/file.pdf。如果有效,那麼相對URL可能是錯誤的。任何相關的iframe URL實際上都是相對於父頁面的URL。如果您知道磁盤文件系統路徑如何組合在一起,那麼確定正確的相對URL應該足夠明顯。

要排除第二個,請檢查本地磁盤文件系統。如果它不在那裏,那麼你就足夠了解。但是,如果它在那裏,那麼該文件可能是剛剛寫入磁盤並且尚未關閉的新文件。如果您使用Java IO將此文件寫入磁盤,那麼您需要確保您在關閉OutputStream。請使用以下習慣用語:

OutputStream output = null; 
try { 
    output = new FileOutputStream(new File("c:/path/to/file.pdf")); 
    // write .. 
} finally { 
    if (output != null) try { output.close(); } catch (IOException logOrIgnore) {} 
} 

另請參閱Sun Java IO tutorial

+0

我知道該文件存在,並且由於可以從文件位置打開它,所以outputsteam已關閉。測試絕對http地址的問題是我無法弄清楚。我試着通過http:// localhost:8080/appname/reports/saved/filename.pdf來訪問它,但是我得到了同樣的錯誤。 – Shaded 2009-12-16 14:39:03

+0

然後,它不在那裏,你認爲它或有更多的事情。嘗試在一個Servlet類的內部說明什麼是'new File(「c:/path/to/file.pdf」)。exists()'(使用絕對磁盤文件系統路徑,而不是相對路徑!)。 – BalusC 2009-12-16 15:36:43

0

我不使用Tomcat,但最有可能的是相對路徑不正確。

0

我不知道Tomcat,但你搞砸了路徑。如果PDF位於c:\ tomcat 6.0 \ webapps \ appname \ index.html,則使用./reports/saved/filename.pdf。 。

+0

如果不知道父絕對URL,則無法判斷。 – BalusC 2009-12-16 14:37:46

+0

父絕對URL是c:\ tomcat 6.0 \ webapps \ appname \ pdfViewer.jsp 所以我嘗試了src =「reports/saved/reportname.pdf」和所有可能的組合,我可以想到,所有這些結果在「資源不可用」 – Shaded 2009-12-16 14:49:09