powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Нужен пример download csv из JS.
25 сообщений из 54, страница 2 из 3
Нужен пример download csv из JS.
    #39012268
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangelЧто значит не с урлом :)
ёшкин кот))).
Откуда взять урл, если у меня AppProcess или могу хранимку сделать.
...
Рейтинг: 0 / 0
Нужен пример download csv из JS.
    #39012271
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или ещё так о задаче.
На клиента, по AJAX я передал текст CSV для скачивания. Как запустить процесс скачки?
...
Рейтинг: 0 / 0
Нужен пример download csv из JS.
    #39012281
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123blkangel,
Код: javascript
1.
2.
3.
t = window.open('','','width=200,height=100');
t.document.write("<p>" + ajaxRes + "</p>");
t.focus();


= окно сверху без предложения скачать.
Ищу где затык.

Мне кажется в тэге <p>, у тебя если развернуть должно так быть
Код: html
1.
t.document.write("<html><head>Content-Length: ...   .... </head>...</html>");
...
Рейтинг: 0 / 0
Нужен пример download csv из JS.
    #39012300
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangelМне кажется
Content-Length вроде в заголовке должен, а не в теле странички.
....
...
Рейтинг: 0 / 0
Нужен пример download csv из JS.
    #39012303
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня впечатление, что без фрейма, download вообще невозможен.
Т.е. код на JS неверен.
...
Рейтинг: 0 / 0
Нужен пример download csv из JS.
    #39012328
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123blkangelМне кажется
Content-Length вроде в заголовке должен, а не в теле странички.
....
А я где его написал? :)
...
Рейтинг: 0 / 0
Нужен пример download csv из JS.
    #39012342
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangelА я где его написал? :)
)) мне нужен hello World.
Не выходит нифига.
...
Рейтинг: 0 / 0
Нужен пример download csv из JS.
    #39012345
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123у меня впечатление, что без фрейма, download вообще невозможен.
Т.е. код на JS неверен.
Я твою задумку понял к 20 посту, я тоже так пытался сделать, не получилось.
Был вариант создать ссылку, такого типа
Код: html
1.
apex_util.get_blob_file?a=603&s=3629748535252&p=444&d=65579030566892509&i=65577126244892505&p_pk1=1033&p_pk2=&p_ck=85B58F7A62C9F1300EE8E0B033B2CDEA&p_content_disposition=attachment"


Но не раскурил где взять пару параметров.

Я предлагаю тебе такой вариант.
Пользователь производит какие то действия, устанавливая тем самым нужные параметры для скачивания файла.
Скрытый регион, с сылкой на файл в БД, ссылка будет изменятся путем обновления региона.
ну и после обновления, JS просто жмет на ссылку
...
Рейтинг: 0 / 0
Нужен пример download csv из JS.
    #39012351
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
блин. Был бы у меня ords сервер с сервлетом - не было бы проблемы.
Тут была где то тема, как зарегестрировать хранимку и выдать как урл наружу.... Не помнишь?
Чтобы сделать типа:
Код: sql
1.
2.
3.
4.
<div onclick="downloadimg('1.jpg')"></div>
function downloadimg(img) {
document.location='1.php?i='+img;
}
...
Рейтинг: 0 / 0
Нужен пример download csv из JS.
    #39012358
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangelСкрытый регион, с сылкой на файл в БД
Не понял. У меня же нет файла!
У меня голимый текст из вьюхи.
...
Рейтинг: 0 / 0
Нужен пример download csv из JS.
    #39012367
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123блин. Был бы у меня ords сервер с сервлетом - не было бы проблемы.
Тут была где то тема, как зарегестрировать хранимку и выдать как урл наружу.... Не помнишь?
Чтобы сделать типа:
Код: sql
1.
2.
3.
4.
<div onclick="downloadimg('1.jpg')"></div>
function downloadimg(img) {
document.location='1.php?i='+img;
}


Не помню, не при помощи плагина ли это делается
...
Рейтинг: 0 / 0
Нужен пример download csv из JS.
    #39012380
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangel,
раскопал идею такую.
Нужно при выдаче на клиента дать такой заголовок чтобы браузер не открывал сам.
Тогда предложит сохранить на диск.
Не могу испортить контент)))). Чтобы он не понял t.document.write("<p>" + ajaxRes + "</p>");
))))
...
Рейтинг: 0 / 0
Нужен пример download csv из JS.
    #39012422
Casufi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
Может я чего то не понимаю в вопросе, но почему не дать файлу заголовок application/csv ?
Код: sql
1.
2.
3.
4.
5.
6.
  htp.p('Content-Type: application/csv ; charset=UTF-8');
  htp.p('Content-Disposition: attachment; filename='||l_file_name||';');
  htp.p('Content-Length: ' || dbms_lob.getlength(blobOutput));
  htp.p('Cache-Control: "no-cache"');  
  htp.p('');
  wpg_docload.download_file(blobOutput);



А в яваскрипте в чем загвоздка сделать редирект
...
Рейтинг: 0 / 0
Нужен пример download csv из JS.
    #39012533
Casufi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Casufi,

З.Ы. Url для ондеманд процесса я получаю так
Код: sql
1.
2.
3.
				var get = new htmldb_Get(null, $v("pFlowId"), "APPLICATION_PROCESS=" + updateProcessName, $v("pFlowStepId"));
				get.addParam("x01", $v('ITEM1'); 
				get.addParam("x02", $v('ITEM2'); 
...
Рейтинг: 0 / 0
Нужен пример download csv из JS.
    #39012534
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Casufi,
я все варианты пробую.
Редирект в каком окне? В папап-всплывающем?
Т.к. мне перерисовка странички родительской не нужна.
...
Рейтинг: 0 / 0
Нужен пример download csv из JS.
    #39012536
Casufi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
				var get = new htmldb_Get(null, $v("pFlowId"), "APPLICATION_PROCESS=" + updateProcessName, $v("pFlowStepId"));
				get.addParam("x01", $v('ITEM1'); 
				get.addParam("x02", $v('ITEM2'); 
				redirect(get.url());



Редирект тебе вываливает запрос на сохранение файла
...
Рейтинг: 0 / 0
Нужен пример download csv из JS.
    #39012564
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Casufi,
тут у тебя параметров полно. Пол дня буду ковырять.
Как мой пример вообще без параметров ITEM1 заставить работать?
Урл get.url() в каком виде там приходит?
...
Рейтинг: 0 / 0
Нужен пример download csv из JS.
    #39012567
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Casufi
Код: sql
1.
2.
3.
4.
  htp.p('Content-Length: ' || dbms_lob.getlength(blobOutput));
  htp.p('Cache-Control: "no-cache"');  
  htp.p('');
  wpg_docload.download_file(blobOutput);



вот так можно заменить?
Код: sql
1.
2.
3.
4.
  htp.p('Content-Length: 6');
  htp.p('Cache-Control: "no-cache"');  
  htp.p('');
  wpg_docload.download_file('АВС');
...
Рейтинг: 0 / 0
Нужен пример download csv из JS.
    #39012590
Casufi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Как мой пример вообще без параметров ITEM1 заставить работать?
Добавление параметров опционально, не нужно не добавляй.

Petro123вот так можно заменить? Нет. Просто выводи текст через htp.p
...
Рейтинг: 0 / 0
Нужен пример download csv из JS.
    #39012602
Casufi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вот так можно заменить?
А длинну текста как будешь считать ? А если сначала соберешь в текст, чтобы проверить длинну, где гарантия что результат не будет больше 32К?
Имхо проще собрать текст в клоб, преобразовать в блоб и выдать как я написал.
...
Рейтинг: 0 / 0
Нужен пример download csv из JS.
    #39012606
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Casufi,
redirect(get.url());
То что не хватало, спасибо :)
...
Рейтинг: 0 / 0
Нужен пример download csv из JS.
    #39012608
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CasufiPetro123вот так можно заменить?
А длинну текста как будешь считать ? А если сначала соберешь в текст, чтобы проверить длинну, где гарантия что результат не будет больше 32К?
Имхо проще собрать текст в клоб, преобразовать в блоб и выдать как я написал.

Для отдачи на клиента, размер 32к не влияет, а размер всегда надо считать, иначе работать не будет.
...
Рейтинг: 0 / 0
Нужен пример download csv из JS.
    #39012613
Casufi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Загнул, все мимо клоба можно, в блоб
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
is
  l_csv blob;
  l_row varchar2(32767);
begin    
  dbms_lob.createTemporary(l_csv, TRUE);
  dbms_lob.open(l_csv, dbms_lob.lob_readwrite);  
  loop
    ...
    ...
    l_row := l_row||chr(10);
    dbms_lob.writeappend(l_csv,length(l_row),utl_raw.cast_to_raw(l_row));
  end loop;
  dbms_lob.close(l_csv);  
  htp.p('Content-Type: application/csv; charset=UTF-8');
  htp.p('Content-Disposition: attachment; filename=PriceTemplate.csv;');
  htp.p('Content-Length: ' || dbms_lob.getlength(l_csv));
  htp.p('Cache-Control: "no-cache"');  
  htp.p('');    
  wpg_docload.download_file(l_csv);  
...
Рейтинг: 0 / 0
Нужен пример download csv из JS.
    #39012664
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CasufiЗагнул, все мимо клоба можно, в блоб
класс! Спс.
Завтра буду пробовать.
...
Рейтинг: 0 / 0
Нужен пример download csv из JS.
    #39013639
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Casufi ,
спасибо! Работает ))
Код: 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.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
-- Application Process
=================
declare
  l_csv blob;
  l_row varchar2(32767);
Begin
  dbms_lob.createTemporary(l_csv, TRUE);
  dbms_lob.open(l_csv, dbms_lob.lob_readwrite);  
  for i in 1..4
  loop
    l_row := '1234';
    l_row := l_row||chr(10);
    dbms_lob.writeappend(l_csv,length(l_row),utl_raw.cast_to_raw(l_row));
  end loop;
  dbms_lob.close(l_csv);
  
  htp.p('Content-Type: application/csv; charset=UTF-8');
  htp.p('Content-Disposition: attachment; filename=PriceTemplate.csv;');
  htp.p('Content-Length: ' || dbms_lob.getlength(l_csv));
  htp.p('Cache-Control: "no-cache"');  
  htp.p('');    
  wpg_docload.download_file(l_csv);  
  -- Send an error code so that the
  -- rest of the HTML does not render
  htmldb_application.g_unrecoverable_error := true;
exception
  when others then
  htp.prn('Системная ошибка AJAX в AppProcess');
end;

-- ЗАГОЛОВОК ЗАПРОСА
==================
Cache-Control	"no-cache"
Content-Disposition	attachment; filename=PriceTemplate.csv;
Content-Length	20
Content-Type	application/csv; charset=UTF-8
Server	Oracle XML DB/Oracle Database

-- Вызов в JS
=================
function getText(this_) {
  try {
    var ajaxReq = new htmldb_Get(null,&APP_ID.,'APPLICATION_PROCESS=TEST',0);
    ajaxRes = ajaxReq.get();
    if(ajaxRes)
      { 
        redirect(ajaxReq.url());
      }
      else
      {
        alert("AJAX - Sysytem Error");
      }
    ajaxReq = null;
  } catch (e)  
  {
    alert("SYS - Системная ошибка: " + e);
  }
};
...
Рейтинг: 0 / 0
25 сообщений из 54, страница 2 из 3
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Нужен пример download csv из JS.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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