2012-10-09 21 views
2

在我的web應用程序中,我有用戶上傳文件(圖像和文檔),這些文件稍後應該可供其他用戶使用。Glassfish:提供用戶上傳的文件(Alternate docroot relative Webapp)

這裏是GlassFish的-web.xml中

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD 
    GlassFish Application Server 3.1 Servlet 3.0//EN" 
    "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd"> 
<glassfish-web-app> 
    <parameter-encoding default-charset="UTF-8" /> 
<property name="alternatedocroot_1" 
     value="from=/uploads/* dir=C:/glassfish31/glassfish/domains/domain1" /> 
</glassfish-web-app> 

它的工作原理,但我想部署在其他系統上(Linux/Windows的)應用程序。第一季度:有沒有什麼辦法可以避免在這裏寫完整路徑,至少是否可以通過Linux/Windows移植?

Q2:在上傳文件時,我使用primefaces並使用指向與上面相同目錄的硬編碼字符串將文件存儲到光盤。

public static final String ALTERNATE_DOC_ROOT_1 = "C:/glassfish31/glassfish/domains/domain1/uploads"; 

有一些API,可以讓我的代碼查找備用文檔根目錄的絕對路徑,因此可以在其存儲的文件?

+0

你有沒有制定出答案Q2? – gordonk

+0

不,我把它作爲數據庫中的一個可配置參數。這是在啓動時在渴望的JSF bean中獲取的 –

回答

0

Q1:只需簡單地更換以一個點的絕對路徑使其默認爲:

C:/glassfish31/glassfish/domains/domain1 

<property name="alternatedocroot_1" 
    value="from=/uploads/* dir=." /> 

所以我想這將工作在Linux上還可以,但havnt測試

相關問題