Как Выгрузить Вложения Rt Поля В Пеерменную В Base64 Кодировке?

Тема в разделе "Lotus - Программирование", создана пользователем seoman2, 25 ноя 2013.

  1. seoman2

    seoman2 Lotus team
    Lotus team

    Регистрация:
    17 фев 2010
    Сообщения:
    435
    Симпатии:
    0
    Как выгрузить вложения RT поля в пеерменную в base64 кодировке?
    Есть копочка:
    в опциях Use "Base64 LS2J"
    кнопка
    ...
    Set rtitem = doc.GetFirstItem("ПРИЛОЖЕНИЯ_")
    Forall obj In rtitem.EmbeddedObjects
    ...
    Хочу в Text$ получить содержимое obj в base64 кодировке.
    Как бы подключить функцию DecodeBase64?
     
  2. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    1) выложить файл на диск
    2) открыть стримом и декодировать
     
  3. garrick

    garrick Lotus team
    Lotus team

    Регистрация:
    26 окт 2009
    Сообщения:
    773
    Симпатии:
    52
  4. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.078
    Симпатии:
    300
    если объектом явл. файл - парсим дх (там оно уже в base64)
    опять - не понятна цель сего действа
     
  5. seoman2

    seoman2 Lotus team
    Lotus team

    Регистрация:
    17 фев 2010
    Сообщения:
    435
    Симпатии:
    0
    Хочу лотус скриптом генерировать XML файл с полем prilojenie с текстом вложения в base64 кодировке.
    xml = xml + {<prilojenie>} + Text$ + {</prilojenie>} + Chr(13)
     
  6. seoman2

    seoman2 Lotus team
    Lotus team

    Регистрация:
    17 фев 2010
    Сообщения:
    435
    Симпатии:
    0
    сть документ лотуса, если поле рт в нем вложение *.doc как выгрузить все это в xml?

    >> А моя ссылка http://codeby.net/index.php?showtopic=37327 не помогла?
    не понятно, как к примеру к кнопке, в которой клик на лотусскрипте работает, подключить:
    %INCLUDE "lsxsd.lss"

    Чтобы заработало
    Dim Base64File As New Xsd_base64binary
    ....
    Call Base64File.Setvaluefromnotesstream(inStream)
     
  7. afest

    afest Well-Known Member

    Регистрация:
    16 июн 2009
    Сообщения:
    78
    Симпатии:
    0
    сть документ лотуса, если поле рт в нем вложение *.doc как выгрузить все это в xml?

    читал как-то на буржуйском форуме, что у *.docx мона просто заменить расширение на zip и внутри будет сразу готовый xml...
    но вот с *.doc можно было бы просто, наверно, конвертнуть в *.docx...
    это не совет, просто так для инфы, гарантированность не обещаю
     
  8. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4

    пробовал когда-то так конвертировать чтобы файлы в виде base64-стринга по сервису отправлять, не прокатило почему-то.. просто текст конвертировало, а на файлах периодически падало, в итоге использовал mime конвертацию в base64..
     
  9. seoman2

    seoman2 Lotus team
    Lotus team

    Регистрация:
    17 фев 2010
    Сообщения:
    435
    Симпатии:
    0
    Выгрузил файл вложения на винт, потом:
    session.ConvertMIME = False
    Dim inStream As NotesStream
    Call inStream.Open("c:\text\" & oname$, "binary")

    Set plainText = doc.CreateMIMEEntity("Вложения")
    Call plainText.SetContentFromBytes(inStream, "image/jpeg", ENC_BASE64)

    А как потом в Text$ загнать plainText ?
     
  10. seoman2

    seoman2 Lotus team
    Lotus team

    Регистрация:
    17 фев 2010
    Сообщения:
    435
    Симпатии:
    0
    Итог:
    %INCLUDE "lsxsd.lss"
    Dim Base64File As New Xsd_base64binary
    ....
    Call Base64File.Setvaluefromnotesstream(inStream)

    В Base64File в valueasstring содержится текст вложения в base64 кодировке.
    Как его извлечь в текстовую переменную? Нигде не нашел.
     
  11. seoman2

    seoman2 Lotus team
    Lotus team

    Регистрация:
    17 фев 2010
    Сообщения:
    435
    Симпатии:
    0
    У кого то есть мысли по последнему моему посту?
     
  12. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    Код (LotusScript):
    dim conv as XSD_DATATYPE_CONVERTER
    Dim ses As new NotesSession
    Dim stream As NotesStream

    set conv = new XSD_DATATYPE_CONVERTER
    set stream = ses.createstream
    call stream.writetext("qwerty")

    msgbox conv.notesStreamToBase64( stream )
     
  13. seoman2

    seoman2 Lotus team
    Lotus team

    Регистрация:
    17 фев 2010
    Сообщения:
    435
    Симпатии:
    0
    Kee_Keekkenen, спасибо!
     
Загрузка...

Поделиться этой страницей