Линк на фотку в РТ поле

Kizarek86

Lotus team
20.07.2007
864
4
#1
Нужно получить ссылку на фотку, которую помещаем в РТ поле.Как сделать? можно ли из РТ поля получить её? или же как поймать адрес фотки которую закидываем в РТ поле при выборе файла?
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
2
#2
Для: kizarek

что значит "адрес"?

если путь, откуда загружается файл то:

filenames = ws.OpenFileDialog( _
True, "Select files ",, "c:\")
If Not(Isempty(filenames)) Then
Forall filename In filenames
'filename - путь к файлу
'прикрепляешь файл в РТ поле
End Forall
End If


только вопрос - зачем оно надо?
 
S

Sandr

#3
Имеется ввиду веб урл на картинку из РТ поля документа?
 

Kizarek86

Lotus team
20.07.2007
864
4
#4
Не совсем так. хотел узнать можно ли получить путь к картинке уже загруженной в РТ поле, но я так понял такое значение в РТ поле не попадает, его поймать можно только при подгрузке картинки.
Другой вопрос вылез.Можно ли сразу выгрузить картинку на ХТМЛ страницу, может у кого есть алгоритмик написанный? Или как фотку из документа вынуть и закинуть в нужную папку как отдельный файл?
 
S

serEJa Shabalin

#5
См. хелп: URL commands for opening attachments, image files, and OLE objects (Notes:///C325732900277008/855DC7FCFD5FEC9A85256B870069C0AB/AB6CD6E8BB3A5A5085256E0000493D9F)

См. хелп: ExtractFile method (Notes:///C325732900277008/F4B82FBB75E942A6852566AC0037F284/6047EAAFCD5B4C6885256E00004A917B)

Хотя если картинка внедрена, то либо DXL либо MIME
 

lionk

Well-known member
05.04.2007
310
2
#6
картинка которая находися в РТ поле по сути хранится в поле $file,
то чтобі отбразить её на хтмл странице достаточно пути типа http://database.nsf/alias_doca/$file/...еного_в_РТ_поле

тоесть создав тег <img> с тем путём в src ты получиш свою картинку но хтмл странице.
и даже если у тя несколько РТ полей в которых хранятся картинки механизм доступа всегда один.
 
S

Sandr

#8
Можно ли сразу выгрузить картинку на ХТМЛ страницу
А что, когда Вы открываете документ в ВЕБе картинки нет? Должна быть... Кому-то я вчера уже тут говорил, что CFD поле в ВЕБе, которое вычисляется из РТ поля, показывает в ВЕБе все содержимое в неизменном виде.. даже картинки...
Если вам на странице надо получить еще и ссылку на картинку, то используйте JAvaScript.. обратитесь к src нужного объекта img...
 

Kizarek86

Lotus team
20.07.2007
864
4
#9
Страница веб генериться скриптом.А не база открывается под ВЕБ. Есть ли возможность из лотуса скриптом картинку передать на ХТМЛ? м\б как оле объект...или есть варианты проще? не очень хочется вынимать фотки из БД и потом тока прикручивать к страницам.
 
S

Sandr

#10
Страница веб генериться скриптом.А не база открывается под ВЕБ. Есть ли возможность из лотуса скриптом картинку передать на ХТМЛ? м\б как оле объект...или есть варианты проще? не очень хочется вынимать фотки из БД и потом тока прикручивать к страницам.
Если пользователь работает не с базой, а со статическим HTML, который генерится лотусом, то не получится... Если страница генерируется во время работы пользователя (по его запросу), то Вы можете открывать картинку в случае, если она есть в imageResource базы:

/ссылка на базу/название картинки?OpenImageResource



Если картинка в РТ поле, то можно отталкиваться от notesEmbeddedObject.Source
 

Kizarek86

Lotus team
20.07.2007
864
4
#11
нифига неполучается. Ситуация следующая, есть РТ поле("Foto"), туда помещаем картинку. потом необходимо сохранить эту картинку в отдельный файл, в указанное место. Код из хелпа:
Код:
	Dim docST As NotesDocument 
Dim uidocST As NotesUIDocument	
Dim workspaceST As New NotesUIWorkspace 
Set docST = workspaceST.CurrentDocument .Document
Dim doc As NotesDocument
Dim rtitem As Variant
Set rtitem = docST.GetFirstItem( "Foto" )
MAX = 100000
fileCount = 1
If ( rtitem.Type = RICHTEXT ) Then 
Forall o In rtitem.EmbeddedObjects <==== ТУТ РУГАЕТСЯ НА НЕСООТВЕТСТВИЕ ТИПОВ
If ( o.Type = EMBED_ATTACHMENT ) _
And ( o.FileSize > MAX ) Then
fileCount = fileCount + 1
Call o.ExtractFile _
( "c:\reports\newfile" & Cstr(fileCount) )
Call o.Remove
Call docST.Save( True, True )
End If
End Forall
End If
А если документ небыло сохранён, тоошибка в первом ифе на неверный объект.
Что нетак делаю?(
 

Kizarek86

Lotus team
20.07.2007
864
4
#13
Omh
ну ет понятно, это то сделаю, если объект не сохранён то в РТ ничего не приатачено. с этим разберусь)
Хотя и на такую конструкцию тоже ругается)))если документ перед этим несохранён.
 
S

Sandr

#14
Попробуйте rtitem нормально объявить, возможно он его не как РТ определяет, а как обычный итем...

ЗЫ: А какртинка у Вас в каком виде в РТитеме сидит, как аттачь, или как картинка?
 

Kizarek86

Lotus team
20.07.2007
864
4
#15
Sandr
Как картинка.Пробовал объявить как NotesRichTextItem, ошибка пропала, но картинку всё равно непойму как вытащить из него...
 

Omh

Lotus team
04.07.2007
2 210
1
#16
По идее так:
пока док не сохранён, значение RTItem'а не переданно в бэкграунд документ, а ты уже пытаешься его оттуда выудить.
Т.е. надо попробовать либо сделать uidoc.Refresh(True) - тут немного сомневаюсь.
Либо сохранить документ и всё :(

Тьфу, как картинка?!!?
Тогда забудь про Embedded Object.

DXL + NotesMIMEEntity поможет декоднуть картинку и сохранить куда надо.
 

Kizarek86

Lotus team
20.07.2007
864
4
#17
Omh
В РТ поле можно выбрать только картинку. Что собственно и делается. Просто она выбирается.
С атачами я не общался ещё. Может лучше фотку приатачить к документу? тогда и достать легче будет? )
 

Omh

Lotus team
04.07.2007
2 210
1
#18
Аттач гораздо легче выковырять.
Тогда именно NotesEmbeddedObject и нужен.
С inline-картинками сложнее.
 

Kizarek86

Lotus team
20.07.2007
864
4
#19
Omh
Сорь тогда за глупый вопрос, как программно при выборе картинки(при закрытие документа, неважно по какому событию) притачить картинку которая выбрана в РТ поле?
 

Omh

Lotus team
04.07.2007
2 210
1
#20
Тебе надо выбирать не File ->Import, а File-Attach
Потому как импортнув картинку ты сразу теряешь связь с файлом, из которго она импортнута.