【问题标题】:Glassfish: serve files uploaded by users (Alternate docroot relative Webapp)Glassfish:提供用户上传的文件(备用 docroot 相关 Webapp)
【发布时间】:2012-09-30 08:28:50
【问题描述】:

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

这是 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 的绝对路径,以便在其中存储文件?

【问题讨论】:

  • 你有没有计算出 Q2 的答案?
  • 不,我将它设置为数据库中的可配置参数。在启动时在急切的 JSF bean 中获取

标签: jakarta-ee primefaces glassfish


【解决方案1】:

Q1:简单地用一个点替换绝对路径使其默认为:

C:/glassfish31/glassfish/domains/domain1

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

所以我想这也可以在 linux 上运行,但是没有测试过

【讨论】:

    猜你喜欢
    • 2013-04-12
    • 2014-06-30
    • 1970-01-01
    • 2014-10-06
    • 2012-07-05
    • 2014-07-11
    • 1970-01-01
    • 1970-01-01
    • 2016-04-04
    相关资源
    最近更新 更多