powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Выгрузить несколько файлов в одном процессе
14 сообщений из 39, страница 2 из 2
Выгрузить несколько файлов в одном процессе
    #39160753
Turingvetil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
blkangel,

спасибо, теперь выводит правильно, и если отметить один файл, то его и выгружает. Но если отметить несколько, выводит только первый. Причем если после выгрузки добавить еще какое-нибудь действие, оно выполняется, т.е. это не выгрузка процесс убивает (?)

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
function downloadFiles () {
	var arrf30 = new Array();
	arrf30 = document.getElementsByName("f01");
	for (var i=0; i < arrf30.length;i++) 
    if (arrf30[i].checked)
	{	var getFile = new htmldb_Get(null, $v('pFlowId'),'APPLICATION_PROCESS=DOWNLOAD_FILE', 0);
	    getFile.addParam("x01",arrf30[i].value);
	    window.open(getFile.url());
	    document.write("ololo");
	}
};



Отмечаю 2 строки, выгружает файл из первой, пишет "ololo".
...
Рейтинг: 0 / 0
Выгрузить несколько файлов в одном процессе
    #39160759
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Turingvetil,
А где обнуление, я вроде писал везде????
Код: javascript
1.
getFile=null;
...
Рейтинг: 0 / 0
Выгрузить несколько файлов в одном процессе
    #39160830
Turingvetil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
blkangel,
эх, не хотела Вас больше мучить, но никак не выходит каменный цветок...

Сейчас код выглядит так:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
function downloadFiles () {
	var arrf30 = new Array();
	arrf30 = document.getElementsByName("f01");
	for (var i=0; i < arrf30.length;i++) 
    if (arrf30[i].checked)
	{  var getFile = new htmldb_Get(null, $v('pFlowId'),'APPLICATION_PROCESS=DOWNLOAD_FILE', 0);
	    getFile.addParam('x01',arrf30[i].value);
	    window.open(getFile.url());
	    getFile = null;	
	}
};



Выгружает только первый файл.
...
Рейтинг: 0 / 0
Выгрузить несколько файлов в одном процессе
    #39160870
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Turingvetilblkangel,
эх, не хотела Вас больше мучить, но никак не выходит каменный цветок...

Сейчас код выглядит так:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
function downloadFiles () {
	var arrf30 = new Array();
	arrf30 = document.getElementsByName("f01");
	for (var i=0; i < arrf30.length;i++) 
    if (arrf30[i].checked)
	{  var getFile = new htmldb_Get(null, $v('pFlowId'),'APPLICATION_PROCESS=DOWNLOAD_FILE', 0);
	    getFile.addParam('x01',arrf30[i].value);
	    window.open(getFile.url());
	    getFile = null;	
	}
};



Выгружает только первый файл.

Ну давайте дебажить. результат выкладывайте, чего он в консоль напишет.
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
function downloadFiles () {
	var arrf30 = new Array();
	arrf30 = document.getElementsByName("f01");
	console.log("arrf30.length="+arrf30.length);
	for (var i=0; i < arrf30.length;i++) 
    if (arrf30[i].checked)
	{  var getFile = new htmldb_Get(null, $v('pFlowId'),'APPLICATION_PROCESS=DOWNLOAD_FILE', 0);
	    getFile.addParam('x01',arrf30[i].value);
	    window.open(getFile.url());
			console.log("getFile.url()"+getFile.url());
	    getFile = null;	
	}
};
...
Рейтинг: 0 / 0
Выгрузить несколько файлов в одном процессе
    #39160912
Turingvetil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
blkangel,
такое впечатление, что он это действие вообще в дебаг не пишет! А файл грузит. Дебаг запущен, все фильтры сняла, но показывает только событие show.
Зато попутно поймала ошибку, у меня-то действие происходит на странице 2, а я тупо с 0 скопировала... Но всё равно не заработало.
...
Рейтинг: 0 / 0
Выгрузить несколько файлов в одном процессе
    #39160922
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Turingvetil,

Я вам написал код, который пишет в консоль браузера, а не в дебаг.
Откройте консоль браузера и запустите JS скрипт
...
Рейтинг: 0 / 0
Выгрузить несколько файлов в одном процессе
    #39160937
Turingvetil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
blkangel,
прошу прощения, я с яваскриптом вообще первый раз имею дело, да и с Апексом недавно общаюсь, поэтому сильно туплю =(
В консоли вот что:

f?p=111:2:13416999074070::YES:RP:P2_LOAD_ID,P2_STAVKA_ID:,:310 arrf30.length=2
f?p=111:2:13416999074070::YES:RP:P2_LOAD_ID,P2_STAVKA_ID:,:316 getFile.url() http://kdb1:8081/apex/wwv_flow.show?p_request=APPLICATION_PROCESS=DOWNLOAD_FILE&p_instance=13416999074070&p_flow_id=111&p_flow_step_id=2&x01=33
f?p=111:2:13416999074070::YES:RP:P2_LOAD_ID,P2_STAVKA_ID:,:316 getFile.url() http://kdb1:8081/apex/wwv_flow.show?p_request=APPLICATION_PROCESS=DOWNLOAD_FILE&p_instance=13416999074070&p_flow_id=111&p_flow_step_id=2&x01=61
...
Рейтинг: 0 / 0
Выгрузить несколько файлов в одном процессе
    #39160942
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Turingvetil,

В консоле все красиво, выделили две записи, два раза запустилось.
JS отрабатывает корректно.
Значит pl/sql смотреть надо.
процедуру cher_sp.load_ndfl6.download_file Сюда в студию
...
Рейтинг: 0 / 0
Выгрузить несколько файлов в одном процессе
    #39160949
Turingvetil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
blkangel,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
begin
...
myfile := utl_i18n.string_to_raw(txt,'CL8MSWIN1251');

htp.init;
owa_util.mime_header('text/xml', false );    
htp.p( 'Content-Length: ' || dbms_lob.getlength( myfile ) );          
htp.p( 'Content-disposition: attachment; filename="'||c0.filename||'.xml";' );  
owa_util.http_header_close;
wpg_docload.download_file(myfile);
htmldb_application.g_unrecoverable_error := true;
--apex_application.stop_apex_engine; 

end;



myfile - blob, txt - varchar2. Если нужно, выложу целиком, но до этого куска идет только формирование текста, оно нам наверное не важно?
Все-таки грешу на g_unrecoverable_error
...
Рейтинг: 0 / 0
Выгрузить несколько файлов в одном процессе
    #39160965
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Turingvetil,

Моя процедура по скачиванию отличается только строкой htp.init; ну и пару параметров которые я передаю, у Вас указано жестко? в остальном все одинаково.
А я грешу на неправильный подсчет длинны, myfile blob или clob?
...
Рейтинг: 0 / 0
Выгрузить несколько файлов в одном процессе
    #39160970
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Turingvetil,

Не заметил выше, blob.

Добавьте в APPLICATION_PROCCESS
exception when OTHERS then sys.htp.p(sqlerrm);
Чего то выдаст в консоль?
...
Рейтинг: 0 / 0
Выгрузить несколько файлов в одном процессе
    #39160972
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Turingvetil,

И попробуйте в качестве теста, имя фала выдавать на английском, задайте жестко TEST
...
Рейтинг: 0 / 0
Выгрузить несколько файлов в одном процессе
    #39160979
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Turingvetil,

О, а это не заметил, зачем оно?
Код: plsql
1.
myfile := utl_i18n.string_to_raw(txt,'CL8MSWIN1251');
...
Рейтинг: 0 / 0
Выгрузить несколько файлов в одном процессе
    #39161009
Turingvetil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
blkangel,
черт!!! Всё просто: у меня всплывающее окно блокировалось!>__< Только что заметила.
Простите, что столько времени потратила, и спасибо огромное за помощь!!
...
Рейтинг: 0 / 0
14 сообщений из 39, страница 2 из 2
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Выгрузить несколько файлов в одном процессе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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