链接到Oracle ApEx中的文件

时间:2011-07-15 09:57:27

标签: oracle oracle-apex

我正在尝试在Oracle ApEx中创建一个显示文件列表的报告,并允许您下载它们。

文件由外部应用程序创建,我可以完全控制它们的放置位置。刚才我在ApEx图像目录(C:\ oracle \ product \ 11.2.0 \ dbhome_1 \ apex \ images)的子文件夹中创建它们。但是,如果我尝试链接到此处,我只会得到一个空白页面 - 我已尝试将#WORKSPACE_IMAGES##IMAGE_PREFIX#值作为链接网址,但它不起作用。

似乎没有任何方法可以自动将文件添加到ApEx的flows_files.wwv_flow_file_objects$表,除了让ApEx页面执行此操作(或使用ApEx工作区将其作为静态文件上载)。我认为可能的一件事是手动将记录插入到表中,但是需要使用各种ID,这可能是一个雷区。

还有其他人遇到过这个问题吗?链接到任何其他Web服务器上的文件将是基本的,特别是如果它放在文档根目录下。

3 个答案:

答案 0 :(得分:3)

只是为了提供一个答案,万一有人偶然发现这个问题 - 我设法通过将数据库中的文件存储为BLOB值来解决它。然后,您可以按照此处的说明设置ApEx以提供这些文件:http://download.oracle.com/docs/cd/E14373_01/appdev.32/e13363/up_dn_files.htm#CIHHEHCJ

答案 1 :(得分:2)

如果您使用 Tomcat,Apache或Glassfish 中部署的 Apex侦听器或ORDS(Oracle Rest数据服务)。您需要做的就是首先在应用服务器中识别您的上下文根(图像文件夹或/ i)

Glassfish context root - image

然后创建一个类似' assets' 的文件夹,然后复制您需要在Apex应用程序中引用的所有资产。

在Apex中,您必须引用这些资源,例如' /i/assets/file-name.jpg'

当您在数据库中添加静态文件时,所有这些都是为了避免奇怪的旧版路径(HTML DB< ---> Apex 4.2) wwv_flow_file_mgr.get_file?p_security_group_id=123456789&p_fname=应用文件或工作区文件。在 Apex 5 中,您没有这条奇怪的路径,相反,您有一个文件的虚拟路径引用。

答案 2 :(得分:1)

#WORKSPACE_IMAGES#返回类似

的字符串
wwv_flow_file_mgr.get_file?p_security_group_id=123456789&p_fname=

因此仅适用于存储在Apex文件表WWV_FLOW_FILES中的文件。

#IMAGE_PREFIX#返回类似/i/的字符串,这可以在链接中用于下载存储在Apex图像文件夹中的文件。例如,我可以创建一个这样的链接:

<a href="#IMAGE_PREFIX#"javascript/apex_4_0.js">Download some JS</a>

当我运行页面并单击它时,我可以打开或下载该文件。

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

<a href="/myfiles/picture1.jpg">Download picture 1</a>