powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Download file from DB file system
11 сообщений из 11, страница 1 из 1
Download file from DB file system
    #38082524
Valkar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток , уважаемые

Столкнулся с задачкой, в которой нужно сделать download файла по пути из oracle directory, при помощи APEX.

например директория в оракле "FILE_OUT" = "//dir1/projfiles/out"файл например "text.bkc"размеры файлов могут варьироваться от нескольких байт до нескольких десятков мегабайт.
прошелестил кучу форумов и блогов но внятного намёка на "куда копать" я не получил.

прочитать файл из таблицы это не проблема, но ложить файл сначала в таблицу а потом его от туда читать при этом делать двойную работу мне кажется в корне неправильным.

может быть кто то сталкивался с такого рода задачей ?

подскажите в какую сторону смотреть, если не трудно.
...
Рейтинг: 0 / 0
Download file from DB file system
    #38082585
Полено
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valkar,

http://apex-plugin.com/oracle-apex-plugins/item-plugin/filedownloadlink_163.html

Вот это под себя допилите.
...
Рейтинг: 0 / 0
Download file from DB file system
    #38083119
Valkar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
большое спасибо, я уже видел этот плагин. пытаюсь его запустить в работу, со вчерашнего вечера, но пока мне это не удаётся
...
Рейтинг: 0 / 0
Download file from DB file system
    #38084473
Migelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А зачем тут какие-то плагины? Разве utl_file не достаточно? Читаешь файл, анализируешь, никуда предварительно загружать не надо.
...
Рейтинг: 0 / 0
Download file from DB file system
    #38087329
Valkar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
помоему utl_file не умеет писать на локальный диск клиентского компьютера.

With the UTL_FILE package, PL/SQL programs can read and write operating system text files . UTL_FILE provides a restricted version of operating system stream file I/O.
...
Рейтинг: 0 / 0
Download file from DB file system
    #38090789
Migelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valkarпомоему utl_file не умеет писать на локальный диск клиентского компьютера.
Нет, не умеет. Но в исходной постановке задачи значилось условие :
Valkarнужно сделать download файла по пути из oracle directory
А oracle directory - это только на сервере.
...
Рейтинг: 0 / 0
Download file from DB file system
    #38090809
Migelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А, дошло! Надо взять файл в директории оракла и отдать его клиенту через браузер?
Если так то просто: в pl\sql процессе читаешь файл в blob и отдаешь его через wwv_flow_file_mgr.download_file.

Код: plsql
1.
2.
3.
4.
5.
wwv_flow_file_mgr.download_file (p_file_content => l_blob, 
                                 p_file_name => 'имя_файла.xls', 
                                 p_mime_type => 'application/excel', 
                                 p_file_charset => 'UTF-8', 
                                 p_last_updated_on => Sysdate);
...
Рейтинг: 0 / 0
Download file from DB file system
    #38090835
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MigelleА, дошло! Надо взять файл в директории оракла и отдать его клиенту через браузер?
Если так то просто: в pl\sql процессе читаешь файл в blob и отдаешь его через wwv_flow_file_mgr.download_file.

Код: plsql
1.
2.
3.
4.
5.
wwv_flow_file_mgr.download_file (p_file_content => l_blob, 
                                 p_file_name => 'имя_файла.xls', 
                                 p_mime_type => 'application/excel', 
                                 p_file_charset => 'UTF-8', 
                                 p_last_updated_on => Sysdate);


Всё верно, только тогда уж wpg_docload .download_file, примеров в интернете море
...
Рейтинг: 0 / 0
Download file from DB file system
    #38105512
Valkar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
доброго времени суток ....
извиняюсь что долго так не отписывался ... но меня подгрузили более приоритетным проектом.

вот что у меня получилось.

делаем в приложении процесс "On Demand: Run this application process when requested by a page process."

пишем примерно такой вот маленький код в него

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
declare
  v_length  number;
    bf BFILE;
    Lob_loc     blob;                     
    v_mime    varchar2(255);
    vexists BOOLEAN;
  vfile_length NUMBER;
  vblocksize NUMBER;
begin
  UTL_FILE.FGETATTR('FILE_OUT','test.avi',vexists,vfile_length,vblocksize);
  if vexists then
    -- собираем указатель для Lob_loc
    DBMS_LOB.createtemporary (Lob_loc, TRUE, DBMS_LOB.SESSION);
    bf := BFILENAME('FILE_OUT', 'test.avi');
    -- открываем на чтение , зачитываем в Lob_loc локатор и закрываем 
    DBMS_LOB.FILEOPEN(bf,dbms_lob.file_readonly);
    DBMS_LOB.LOADFROMFILE(Lob_loc, bf, DBMS_LOB.GETLENGTH(bf));
    DBMS_LOB.FILECLOSE(bf);
      -- оформление для аттача 
      owa_util.mime_header( nvl(v_mime,'application/octet'), FALSE );
      htp.p('Content-length: ' || v_length);
      htp.p('Content-Disposition: attachment; filename="' || 'test.avi' || '"');
      owa_util.http_header_close;
      -- собственно вызов файлброузера для закачки
      wpg_docload.download_file( Lob_loc );
  end if;
 end;



и вызываем его , допустим по ссылке, таким образом
Код: sql
1.
<a href="f?p=&APP_ID.:0:&SESSION.:APPLICATION_PROCESS=download">download file</a>


можно имя файла передавать параметром к этому процессу

и получаем то что нужно.

Спасибо всем кто откликнулся, очень помогли.

P.S.: в общем то код получился сборной между двумя задачами "загрузка файла" и "выгрузка файла" но без использования таблиц.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Download file from DB file system
    #38633944
whitener
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток. Возникла такая же неообходимость как и у Вас. Но не получается воспользоваться вашим решением, помогите пожалуйста.
Первую часть я понял, процесс создал. А вот что не получается:
Valkarдоброго времени суток ....


и вызываем его , допустим по ссылке, таким образом
Код: sql
1.
<a href="f?p=&APP_ID.:0:&SESSION.:APPLICATION_PROCESS=download">download file</a>


можно имя файла передавать параметром к этому процессу

и получаем то что нужно.

Спасибо всем кто откликнулся, очень помогли.

P.S.: в общем то код получился сборной между двумя задачами "загрузка файла" и "выгрузка файла" но без использования таблиц.

Использую Application Express 4.2.4.00.08. Есть таблица, в которой одно поле отведено под имя текстового файла.
Вывожу содержимое этой таблицы через Interactive Report.
Куда в свойствах Interactive Report можно подставить вашу ссылку, что можно было скачать файл? Если в Interactive Report нельзя так сделать, то подскажите пожалуйста, какого типа страницу нужно создать и куда там вбить эту ссылку.
Заранее очень благодарен! Спасибо!
...
Рейтинг: 0 / 0
Download file from DB file system
    #38634068
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
whitener,

В настройках отчета, выбирайте настройки колонки, тип самый первый, формат BLOB. После этого чуть ниже появятся настройки для блоба. То есть ссылку для скачки он сам организует.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Download file from DB file system
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]