• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Проблема с аттачами

  • Автор темы Автор темы SkyRanger
  • Дата начала Дата начала
S

SkyRanger

Прикрепляю файло к документу

Код:
	Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim rtitem As NotesRichTextItem
Dim object As NotesEmbeddedObject
Dim doc As NotesDocument
Dim filename As Variant

Set uidoc = ws.CurrentDocument
filename = ws.OpenFileDialog(True, "Выберите файл(ы)","","c:\")
Call uidoc.GotoField("doc_file")

Forall j In filename
Print j
End Forall		

Set doc = uidoc.Document

Set rtitem = New NotesRichTextItem( doc, "doc_file" )

Forall j In filename
Set object = rtitem.EmbedObject( EMBED_ATTACHMENT, "", j)
End Forall

Call doc.Save( True, True )

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

Мне надо чтобы аттач становился доступен сразу и еще чтобы он добавлялся не в самый конец документа а в поле doc_file чтобы не пролистывать содержание документа чтобюы добраться до прикрепленной в виде файла версии...
 
попробуй так:
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim rtitem As NotesRichTextItem
Dim object As NotesEmbeddedObject
Dim filename As Variant

Set uidoc = ws.CurrentDocument
filename = ws.OpenFileDialog(True, "Выберите файл(ы)","","c:\")
Call uidoc.GotoField("doc_file")

Forall j In filename
Print j
End Forall

Set rtitem = New NotesRichTextItem( uidoc, "doc_file" )

Forall j In filename
Set object = rtitem.EmbedObject( EMBED_ATTACHMENT, "", j)
End Forall

Call uidoc.Save( True, True )
 
Используй собаки:
Код:
@Command([EditGotoField]; fieldName$);
@Command([EditInsertFileAttachment])
 
<!--QuoteBegin-velitchestvo+1:06:2007, 08:16 -->
<span class="vbquote">(velitchestvo @ 1:06:2007, 08:16 )</span><!--QuoteEBegin-->Set rtitem = New NotesRichTextItem( uidoc, "doc_file" )
[snapback]67741" rel="nofollow" target="_blank[/snapback]​
[/quote]
тут скорее всего будет ошибка
 
Во заработало!


Код:
	Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim rtitem As NotesRichTextItem
Dim object As NotesEmbeddedObject
Dim doc As NotesDocument
Dim filename As Variant

Set uidoc = ws.CurrentDocument
filename = ws.OpenFileDialog(True, "Выберите файл(ы)","","c:\")

Forall j In filename
Print j
End Forall		

Set doc = uidoc.Document

Set rtitem = New NotesRichTextItem( doc, "doc_file" )

Call doc.Save( True, True )	

Forall j In filename
Call uidoc.GotoField("doc_file")
Set object = rtitem.EmbedObject( EMBED_ATTACHMENT, "", j)
Call uidoc.GotoField("doc_text")
Call uidoc.Import("Microsoft Word",j)
End Forall

Call doc.Save( True, True )	
Call uidoc.GotoField("post_no")

Только проблема опять же, он зараза в самый низ документа под полоску аттачит, а я хочу чтобы в поле аттачил как значок, в общем аналогично

Код:
@Command([EditGotoField]; fieldName$);
@Command([EditInsertFileAttachment])

тока на скрипте...
 
Интересно... Если использовать

Set rtitem = doc.GetFirstItem( "doc_file" )

то нефига не работает, он не возвращает объект поля...

А если создавать новое поле и старое уже есть, он все равно добавляет в самый конец документа...

Т.е. вставить в поле не получается, так как он ен хочет это поле возвращать в виде объекта... Или я где то туплю???

А как запретить правку / удаление ентого объекта? Или надо запрещать правку всего документа???
 
1.
По поводу отображения аттачей - этот вопрос на этом форуме поднимался не раз уже (и мной в том числе % )
Дали мне в тот раз зело полезную ссылку. Как найду - выложу сюда. Но суть решения вот тут можно посмотреть: link removed

2.
Чтоб до RT-поля достучаться - используй сначала Вариант, а потом уже присваивай значение "РТ-переменной".

3.
На сколько знаю, достаточно запретить правку части документа с РТ-полем. Например, секцией с регулируемым доступом.


P.S. По поводу пункта 1. : link removed
Спасибо oshmianski
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab