首页 > 解决方案 > 链接到文件服务器 ApEx

问题描述

请问你能帮帮我吗?

在网上看了一下,发现可以把文件放到 Apex 镜像文件夹中,然后从那里调用,用下面这句话:

<a href="#IMAGE_PREFIX#"file.pdf"> Download pdf </a>

或者

<a href="/i/file.pdf"> Download pdf </a>

我需要放入该文件夹的文件数量约为 1 TB,因此我认为将它们放入该文件夹不是最佳选择,此外还可以删除 Oracle 文件的更新。

我发现以下内容:不建议将您自己的文件存储在 Apex 图像文件夹下,因为它们可能在 Apex 升级期间被覆盖。相反,您可以在指向不同位置的应用服务器上定义自己的逻辑目录,例如 /myfiles/,然后像这样引用它:

<a href="/myfiles/file.pdf"> Download pdf </a>

创建目录如下

CREATE OR REPLACE DIRECTORY myfiles AS 'C:\test';

如何在应用服务器中定义逻辑目录?我正在使用玻璃鱼。

标签: oracleglassfishoracle-apexoracle-apex-5

解决方案


遵循Colm Divilly 编写的这个相当古老但相关的指南。在您的情况下,您只需要 Glassfish 的描述符文件。像这样的东西应该工作:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD GlassFish Application Server 3.0 Servlet 3.0//EN" "http://www.sun.com/software/appserver/dtds/sun-web-app_3_0-0.dtd">
<sun-web-app>
  <!-- This element specifies the context path the static resources are served from -->
  <context-root>/myfiles</context-root>
  <!-- This element specifies the location on disk where the static resources are located -->
  <property name="alternatedocroot_1" value="from=/* dir="c:/test"/>
</sun-web-app>

检查资源的 Windows 路径,它可能需要更正。我很少使用 Windows 进行部署。

其他几件事:

  • 通常,在您描述的场景中,我会放置一个像 Apache HTTPD 或 Nginx 这样的 Web 服务器来提供静态文件。
  • 已弃用对 Glassfish 的 ORDS 支持。

推荐阅读