xmlhttprequest を介して実行され、UNID と Base64 でエンコードされたイメージをパラメーターとして受け入れるエージェントを作成しようとしています。
私が求めているのは、エージェントがbase64文字列をデコードし、それをインライン画像としてRichTextフィールドに書き込むことです
base64でエンコードされた文字列をストリームに書き込んでみました。次に、子エンティティを持つMimeEntityを作成し、ストリームからコンテンツを設定してから、MimeEntityアイテムを取得してRichTextItemに追加しました
.
.
.
Call stream.Writetext(data)
.
Set body = doc.CreateMIMEEntity("RT")
Set header = body.CreateHeader("Content-Type")
Call header.SetHeaderVal("multipart/mixed")
.
Set child = body.CreateChildEntity()
Call child.Setcontentfrombytes(stream, "image/jpeg", 1727)
Call child.Decodecontent()
.
Call RT.AppendRTItem(MimeEntityItem)
しかし、最終的には 6400 バイトの画像/jpeg ファイルになってしまい、それ以上のことはできません。
このようなものを機能させる方法について手がかりを持っている人はいますか? よろしくお願いします=)
編集:
わかりました、有効なbase64文字列を含むファイルを作成するだけだと思いましたが、デコードされません
わかりました今、私は少なくともこれまでに得ました:
Option Public
Option Declare
Sub Initialize
Dim session As NotesSession
Dim doc As NotesDocument
Dim query_string As String
Dim params As Variant
Dim i As Integer
Dim db As NotesDatabase
Set session = New NotesSession
Set doc = session.DocumentContext
query_string = doc.QUERY_STRING(0)
On Error GoTo errorrt
params = Split (query_string,"&")
Print("<html><head></head><body>")
Print params(1);
Print("<br>")
Print ({<img src="data:image/png;base64,} & params(2) & {"></img>})
Set db = session.Currentdatabase
Set doc = db.Getdocumentbyunid(params(1))
If doc Is Nothing Then
Print ("Ne")
End If
Print (doc.Getitemvalue("tatkun")(0))
Print ("</body></html>")
Call AttachSignature(doc,params(2),"signature")
Exit Sub
errorrt:
Print (Error & " " & erl)
Exit Sub
End Sub
Function AttachSignature(doc As NotesDocument, data As Variant, filename As String) As Boolean
AttachSignature = False
Dim session As New NotesSession
Dim db As NotesDatabase
Dim body As NotesMIMEEntity
Dim header As NotesMIMEHeader
Dim child As NotesMIMEEntity
Dim stream As NotesStream
Dim fileType As String
Dim rt1 As NotesRichTextItem
Dim rt2 As NotesRichTextItem
On Error GoTo ErrorRoutine
Set db = doc.Parentdatabase
Set stream = session.CreateStream
Call stream.Writetext(data) 'Write the Data to the Stream
If doc.Getitemvalue("SignatureAttached")(0) = "1" Then
Exit Function
End If
Set body = doc.CreateMIMEEntity("TempRT")
Set header = body.CreateHeader("Content-Type")
Call header.SetHeaderVal("multipart/mixed")
Call body.CreateHeader("Content-Disposition"). _
SetheaderValAndParams({attachment; filename="} &filename & {"})
Set child = body.CreateChildEntity()
fileType = "image/jpeg"
Call child.SetcontentfromText(stream, fileType, 1727)
Call stream.Close()
Call body.Decodecontent()
Call doc.save(False, False)
Set rt1 = doc.GetFirstItem("signature")
Set rt2 = doc.GetFirstItem("TempRT")
Call rt1.AppendRTItem( rt2 )
Call rt2.Remove()
doc.SignatureAttached = "1"
Call doc.save(False, False)
AttachSignature = True
Exit Function
ErrorRoutine:
If Not rt2 Is Nothing Then
Call rt2.Remove()
End If
Print (Error & " " & Erl)
Exit Function
End Function
RichTextアイテムに有効な画像を追加する=)
しかし、インライン画像にする方法がわかりません。また、ファイル名も正しくありません。
もう一度助けてくれてありがとう=)