Glassfish:提供用户上传的文件(Alternate docroot relative Webapp)

时间:2012-10-09 23:04:37

标签: java-ee primefaces glassfish

在我的网络应用程序中,用户可以上传以后可供其他用户使用的文件(图像和文档)。

这是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)上部署应用程序。

Q1:有没有办法避免在这里写完整个路径,至少让它在linux / windows上可移植?

Q2:上传文件时,我使用primefaces并使用硬编码字符串将文件存储到光盘,该字符串指向与上面相同的目录。

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

是否有一些API可以让我的代码查找备用docroot的绝对路径,以便它可以在其中存储文件?

1 个答案:

答案 0 :(得分:0)

Q1:只需用点替换绝对路径,默认为:

C:/glassfish31/glassfish/domains/domain1

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

所以我想这也适用于linux,但经过测试