首页 文章

链接到Oracle ApEx中的文件

提问于
浏览
5

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

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

除了有ApEx页面之外没有't seem to be any way to automatically add a file to ApEx' s flows_files.wwv_flow_file_objects$ 表(或者使用ApEx工作区将其作为静态文件上传) . 我认为可能的一件事是手动将记录插入表中,但是需要使用各种ID,这可能是一个雷区 .

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

3 回答

  • 1

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

  • 2

    如果使用 Tomcat, Apache or Glassfish 中部署的 Apex Listener or ORDS (Oracle Rest Data Services) . 您需要做的就是首先在应用程序服务器中标识上下文根 (image folder or /i) .

    Glassfish context root - image

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

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

    所有这些都是为了避免在数据库中将静态文件作为应用程序文件或工作空间文件添加时出现奇怪的错误 Legacy path ( HTML DB <---> Apex 4.2) wwv_flow_file_mgr.get_file?p_security_group_id=123456789&p_fname= . 在 Apex 5 中,您没有这个奇怪的路径,相反,您有一个文件的虚拟路径引用 .

  • 3

    #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>
    

相关问题