Ссылка на файл в Oracle ApEx - PullRequest
5 голосов
/ 15 июля 2011

Я пытаюсь создать в Oracle ApEx отчет, который отображает список файлов и позволяет загружать их.

Файлы создаются внешним приложением, и я полностью контролирую их расположение. Сейчас я создаю их в подпапке каталога изображений ApEx (C: \ oracle \ product \ 11.2.0 \ dbhome_1 \ apex \ images). Однако, если я попытаюсь сделать ссылку здесь, я просто получу пустую страницу - я попробовал значения #WORKSPACE_IMAGES# и #IMAGE_PREFIX# в качестве URL ссылки, но это не работает.

Похоже, что нет никакого способа автоматически добавить файл в таблицу flows_files.wwv_flow_file_objects$ ApEx, кроме как сделать это на странице ApEx (или загрузить его как статический файл, используя рабочее пространство ApEx). Я думаю, что одна вещь может быть возможной, это вручную вставить запись в таблицу, но с различными идентификаторами, которые это требует, это может быть минное поле.

Кто-нибудь еще сталкивался с этой проблемой? Ссылка на файл на любом другом веб-сервере будет элементарной, особенно если он находится под корнем документа.

Ответы [ 3 ]

3 голосов
/ 04 августа 2011

Просто чтобы дать ответ на этот вопрос в случае, если кто-то наткнется на этот вопрос - мне удалось решить его, сохранив файлы в базе данных как значения BLOB.Затем вы можете настроить ApEx для обслуживания этих файлов, следуя приведенным ниже инструкциям: http://download.oracle.com/docs/cd/E14373_01/appdev.32/e13363/up_dn_files.htm#CIHHEHCJ

2 голосов
/ 01 апреля 2016

Если вы используете Apex Listener или ORDS (Oracle Rest Data Services) , развернутые в Tomcat, Apache или Glassfish . Все, что вам нужно сделать, это сначала определить корневой контекст (папка с изображением или / 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 у вас нет этого странного пути, вместо этого у вас есть ссылка на виртуальный путь к файлу.

1 голос
/ 15 июля 2011

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