Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: jo@chim am 16.12.14 - 11:38:34

Titel: base64 -> vcard klappt nicht
Beitrag von: jo@chim am 16.12.14 - 11:38:34
Ich generiere per LS VCards im Format 2.1 - das funktioniert auch so weit.
Um das Benutzerbild im JPEG-Format in base64 für die vcf-Datei zu kodieren, benutze ich die Klasse CBase64 (-> http://wwwendt.de/tech/base64/ ), in der Form
Code
...
result=result+linebreak+"EMAIL;INTERNET:"+doc.mail(0)
...
'user photo
Dim b64 As New CBase64()		
result=result+linebreak+"PHOTO;JPEG;ENCODING=BASE64:"+b64.encodeFile("d:\me.jpg")
result=result+linebreak+"END:VCARD"
...
Es wird auch ein String, der wie base64 kodierte Daten aussieht generiert - das Bild aber in der VCard nicht angezeigt.
Hat jemand eine Idee, wo mein Fehler liegen könnte?
Titel: Re: base64 -> vcard klappt nicht
Beitrag von: Tode am 16.12.14 - 11:41:59
Ja, da bin ich auch schon drüber gestolpert. Dein Base64 String muss nach einem Zeilenumbruch mit einem Leerzeichen beginnen, sonst wird das Bild nicht angezeigt.

So muss dass dann im text- Editor aussehen:
Zitat
PHOTO;ENCODING=BASE64;TYPE=JPEG:
 /9j/4AAQSkZJRgABAQEASABIAAD/4RI6RXhpZgAATU0AKgAAAAgADgEAAAMAAAABCEAAAAEBAAMA
 AAABCwAAAAECAAMAAAAEAAAAtgEDAAMAAAABAAEAAAEGAAMAAAABAAUAAAESAAMAAAABAAEAAAEV
 AAMAAAABAAQAAAEaAAUAAAABAAAAvgEbAAUAAAABAAAAxgEcAAMAAAABAAEAAAEoAAMAAAABAAIA

und NICHT so:

Zitat
PHOTO;ENCODING=BASE64;TYPE=JPEG:
/9j/4AAQSkZJRgABAQEASABIAAD/4RI6RXhpZgAATU0AKgAAAAgADgEAAAMAAAABCEAAAAEBAAMA
AAABCwAAAAECAAMAAAAEAAAAtgEDAAMAAAABAAEAAAEGAAMAAAABAAUAAAESAAMAAAABAAEAAAEV
AAMAAAABAAQAAAEaAAUAAAABAAAAvgEbAAUAAAABAAAAxgEcAAMAAAABAAEAAAEoAAMAAAABAAIA


Titel: Re: base64 -> vcard klappt nicht
Beitrag von: jo@chim am 16.12.14 - 14:35:33
Danke!!
Code
result=result+linebreak+"PHOTO;JPEG;ENCODING=BASE64:"+Chr$(10)+" "+b64.encodeFile("d:\me.jpg")
Das wars...
Titel: Re: base64 -> vcard klappt nicht
Beitrag von: Tode am 16.12.14 - 14:39:21
Schön zu hören, aber: ACHTUNG: Manchmal wird der encodierte Text umgebrochen (wie in meinem Beispiel), dann musst Du jeden Zeilenumbruch durch einen Zeilenumbrich + Leerzeichen ersetzen innerhalb des Base64- encodierten Textes....