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

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

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

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

Скопировать Фото Из Rishtext Поля

  • Автор темы Rosna
  • Дата начала
R

Rosna

Добрый день!

Возник такой вопрос - как можно из RishText поля взять приаттаченый файл (фото) и вставить его в другой документ уже в виде открытой картинки.

Пыталась просто скопировать RishText, но в итоге фото не появлятся, хоть и сохраняется в документе:

Код:
Set PhotoRttItem = OldDoc.GetFirstItem("photo")
If Not (PhotoRttItem is Nothing) then
Call doc.CopyItem(PhotoRttItem, "photo")
End If
...

Подскажите, есть ли другой способ?
В идеале нужно ресайзить фото при переносе, но с этим пока не разбиралась даже. %)
 
N

nvyush

Для переноса использовать dxl, его же для масштабирования, если нужно именно изменить размер картинки, ищите подходящие java-библиотеки.

Похожая тема:
link removed
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 940
609
BIT
210
коротко
путь такой - дергаем файл через (DXL), лучше SAX, файл будет в base64, получаем DXL из целевого дока, вставляем нужный тег (<picture> с соответ атрибутами) в нужное место, загружаем DXL (соотвю целевому доку) обратно
будет ли опознавать картинки отличные от gif - не знаю

если нет - используя java: декодим base64 конвертим в gif, кодим в base64... повторяем часть верхнего алгоритма

Добавлено: преобразование форматов
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Хм... ресайз делал без DXL.
1. детач файла
2. пропорциональный ресайз с использованием java
3. атач файла в документ

С ресайзом все достаточно просто.
А вот прикрепить в виде картинки... хм... даже не знаю... может
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 940
609
BIT
210
Хм... ресайз делал беp DXL.
1. детач файла
2. пропорциональный ресайз с использованием java
3. атач файла в документ

С ресайзом все достаточно просто.
А вот прикрепить в виде картинки... хм... даже не знаю... может
не совсем просто - если на сервере и нет прав на создание файлов в ФС
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
не совсем просто - если на сервере и нет прав на создание файлов в ФС
И это тоже решается...
Права на директорию data есть всегда. Там и создаю временную директорию и делаю то что мне нужно.
Ну и конечно же агент подписан сервером.

Да... кстати... java использовалась только для ресайза и вызывалась из lotusscript
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 940
609
BIT
210
не являясь админом - откуда взять ИД сервера? ;)
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 940
609
BIT
210
Права на директорию data есть всегда. Там и создаю временную директорию и делаю то что мне нужно.
Ну и конечно же агент подписан сервером.
чьи это слова? ;)
 
R

Rosna

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

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Скидывать это на сторону клиента не очень хорошо... дебажить java-код не просто.
Так же не хорошо использовать DXL на стороне клиента. Был не хороший опыт подобной реализации. Версии XML у клиентов могут отличаться.

У меня сделано так:
1. Пользователь шлет мыло с файлом
2. агент разбирает письма
3. детачит файл на сервер
4. ресайзит
5. атачит измененный файл в документ
6. удаляет мусор

Касательно прав - не пойму в чем проблема.
У сервера всегда есть права на запись в свою директорию.
База всегда подписана сервером (у нас по крайней мере). Не подписана - пинаем админов.

Единственное - уровень доступа агента 3

И все счастливы.
 
30.05.2006
1 345
12
BIT
0
Касательно прав - не пойму в чем проблема.
У сервера всегда есть права на запись в свою директорию.
База всегда подписана сервером (у нас по крайней мере). Не подписана - пинаем админов.
Это если админ - карманный. И сервер - единственный
И все счастливы.
Угу..
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Это если админ - карманный. И сервер - единственный

Угу..
Если у вас полные права на сервер - так вообще вопросов нет.
Если прав нет - то можно написать базейку, в которой серверный агент будет подписывать базы.
Один раз пнуть админа, чтоб он подписал эту базу, и дальше только клепай задания на подпись. И базы подписаны и админы спокойны.

У нас 4 рсервера. 4 базы для автоподписи. 4 раза пнули админа чтоб он их подписал.

А то то и делаете, что ищите какие-то причины, да "руки выкручиваете"
 
S

Serduko

Дело в том, что файл может разбиваться на несколько частей:

Код:
ForAll a In doc1.Items
If Ucase(a.name) = "FOTO" Then
Set nitem = a 
Call doc2.CopyItem( nitem, "foto" )								
End If
End ForAll
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Ну в общем у нее все получилось :huh:
Тема закрыта
 
Мы в соцсетях:

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