• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Upload file from lotus to sql

swyatogor

Green Team
24.02.2014
593
24
BIT
0
Добрый день..
Собственно ломаю голову над сабжем..
Есть пусть получить файл как атач выложить его на диск и потом через стрим вычитать и передать в SQL.. Пытаюсь найти способ короче (без выкладывания на диск).. Что то не получается найти необходимые функции..
Хотел попользоваться getValueCustomDataBytes - ругается - тип данных не совпадает.. что ей пихнуть не понятно((
Подскажите в какую сторону копнуть кто знает..
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
сомневаюсь, что ошибка типов. Вероятно ошибка, что для атачей вышеупомянутый метод не работает.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 940
609
BIT
207
стрим для аттача нужен?
 

swyatogor

Green Team
24.02.2014
593
24
BIT
0
я с джавой ни бельмес.. потому хз.. если бы все было на LS то траблов бы не было..
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
на LS ты не сделаешь. Java надо осваивать.
На Java можно попробовать так:
Java:
EmbeddedObject att = doc.getAttachment("logo.gif");
InputStream is = att.getInputStream();
ByteArrayOutputStream fos = new ByteArrayOutputStream();
byte buffer[] = new byte[(int) att.getFileSize()];
 
int read;
do {
read = is.read(buffer, 0, buffer.length);
if (read > 0) {
fos.write(buffer, 0, read);
}
} while (read > -1);
 
fos.close();
is.close();
// recycle the domino variables
doc.recycle();
db.recycle();
att.recycle();
Но даже тут по сути будет детач, но прозрачно для разработчика
 
Последнее редактирование модератором:

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 940
609
BIT
207
https://codeby.net/threads/57017/#post-258845 там много чего
в т.ч. дергание файлов из потока...
если не сохранять на диск - можно сразу в др. стрим передавать
см. агент testSAXForFiles
там на пайпах, в 2-ух нитях, без промежуточных файлов
достаточно переписать, для своего варианта, консьюмер

забыл... - используется старая модель SAX - переписывать было лень
коротко:
-из дока получаем в поток doc.generateXML(bw)
-поток через pipe передаем
Java:
			PipedInputStream in = new PipedInputStream();
			final PipedOutputStream out = new PipedOutputStream(in);
			thread1 = new NotesThread(new DataSource(doc, out));// new FileOutputStream("./out.dxl")));
			thread1.start();
			thread2 = new NotesThread(new DataConsumer(in));// new FileInputStream("./out.dxl")));
			thread2.start();
-в консьюмере обрабатываем как InputStream
 
Последнее редактирование модератором:

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Честно - не совсем понятно для чего такое делать.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 940
609
BIT
207
если по БД, выше...
была древняя идея (не моя, там и ссылка есть) "упростить" общение с SAX
данный подход - тоже калбэки, но по инъекции конкретных классов, что удобнее написание портянки свича
про пайпы - экономия памяти и времени обработки (байтэррэй дублирует все что скачали с сервера еще раз в памяти), а время экономится асинхронностью (не ждем получения всего стрима, теоретически)
можно произвести замеры, но у меня "не дошли руки"
 

swyatogor

Green Team
24.02.2014
593
24
BIT
0
А если ко мну - то стоит задача - сделать возможность запускать бизнес-процесс в 1С из Lotus)))
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
173
@swyatogor, what?
Вы в аттаче что держите то? Может не надо его в 1С тянуть?
Что за бс в 1С? (у нас тут сделали odin ass... много хорошего могу сказать про исполнителей)
 

swyatogor

Green Team
24.02.2014
593
24
BIT
0
@savl, На сколько я могу знать в 1с встроенная система бизнес процессов (может наши что допиливали еще - хз). там красявость есть - визуализированная структура бизнес-процесса с указанием на какой стадии находится процесс (сколько я не думал как это сделать на клиенте лотуса ни как(().. уже года 4 работает.. вроде норм..
Тащить нуно.. нужно чтобы процессы шли синхронно и в 1с и в лотусе))) и у пользователей была возможность выбора - через какую программу с этим работать).. как то вот так)
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
173
@lmike, так клиент же, не страница... Хотя
@swyatogor, жесть... ну а аттач то зачем? Это типа документ, текст которого согласовывается?
Нельзя ссылку просто передавать на файл, а сам файл хранить вне систем?
А из 1С аттач в лотус тянете?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 940
609
BIT
207
как пример
вот еще
 
Последнее редактирование модератором:

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 940
609
BIT
207
вот еще
 

swyatogor

Green Team
24.02.2014
593
24
BIT
0
@lmike,
1. ненаю что там кто говорит про 1с-ку - но у нас реально есть бизнес процессы работающие на ее платформе, любого уровня сложности их утверждают, а потом туда переносят, и они работают..
2. Не все решения можно отобразить удобоваримо и с требуемой наглядностью (хотя бы повторить функционал 1с-ки) на Basic клиенте лотуса..

@savl, аттач - необходим скан документа для старта БП в 1с - так поставлена задача..
Вообще набор полей для старта БП заполняется в форме, к той же форме прикладывается необходимый файлик.. Потом это закидывается в SQL в определенную табличку в определенном формате (файлик как бинарник тоже ложится в SQL только в другую базу, а для БП передается ИД записи)..

А из 1С аттач в лотус тянете?
нет.. стоит задача (пока)) только дать возможность стартовать БП в лотусе и потом синхронизировать процесс согласования.. Файлы вроде летать не должны, только документы и их содержание..
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 940
609
BIT
207
Не все решения можно отобразить удобоваримо и с требуемой наглядностью (хотя бы повторить функционал 1с-ки) на Basic клиенте лотуса..
basic клиент - этож не висящая в воздухе система, она опирается на сервер, ничто не мешает обрабатывать сервером (хттп) и показывать в бэйзик клиенте ( )
да и потом - почему именно бэйзик? настолько плох бюджет - что компы не меняются 10-летиями ?
[DOUBLEPOST=1460059339,1460059218][/DOUBLEPOST]см. примеры выше - "просто" JS
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!