Oracle APEX загруженный текстовый файл открывается в текущем окне - PullRequest
0 голосов
/ 03 апреля 2020

Oracle DB 12.1, APEX 5

У меня есть кнопка для вызова процесса PL / SQL. Процесс вызывает REST, преобразует ответ (json) в BLOB и использует традиционную download_my_file -подобную процедуру для представления результата пользователю, но вместо «загрузки / открытия» содержимое файла вопроса браузера просто отображается в виде текста, заменяя текущую страницу APEX.

Как я могу загрузить его в виде файла, если щелкнуть кнопку, а не открыть ее в текущем окне?

Процесс:

...
l_envelope := APEX_WEB_SERVICE.make_rest_request(...);
...
apex_clob2file ('text.txt', l_envelope, 'application/json');

Процедура

create or replace PROCEDURE apex_clob2file (in_filename IN VARCHAR2, in_data IN CLOB, in_mime IN VARCHAR2)
IS
...
BEGIN
...
  htp.init;
  owa_util.mime_header(nvl(in_mime, 'text/plain'), FALSE);
  htp.p('Content-Length: ' || dbms_lob.getlength(l_blob));
  htp.p('Content-Disposition: filename="' || in_filename || '"');
  owa_util.http_header_close;
  wpg_docload.download_file(l_blob);
  apex_application.stop_apex_engine;
...
END apex_clob2file;

1 Ответ

0 голосов
/ 06 апреля 2020

Все, что мне нужно сделать, это вложение опция:

htp.p('Content-Disposition: attachment; filename=...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...