function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Android_DevAndroid_Dev 

Upload data to Rich Text Area (from Android using API v20.0)

I am integrated REST API (v20.0) in my Android application, as per current requirement i would like to upload image from Android application to custom object (in custom field, where datatype is Rich Text Area)...

 

As per current implementation i am getting error message: Invalid encoding specified:  base64. The base64 is the only supported encoding.","errorCode":"INVALID_DATA_URI"

 

Android Code:

// Here 'imgBytes' object is nothing but compressed image data
String encodedImage = Base64.encodeToString(imgBytes, Base64.DEFAULT);

// Put base64 image data with image tag in JSON object parameter
data.put("Meter_Reading_Picture__c", "<img src=\"data:image/jpeg; base64," + encodedImage + "></img>");

// ....
post.setHeader("Authorization", "OAuth " + myTokens.get_access_token());
post.setHeader("Content-type", "application/json");

// ...
// execuating Http request

 

Any help/pointer on this would be gretly appriciated - thank you.

 

prafulpraful

Have you solved that problem??

Thomas LettieriThomas Lettieri
I had the same problem, i did a few things, not sure what fixed it

One don't open and close the image tag: after encodedImage it should be + "\"/>
Basically close the quotes and end the image tag

I did a few other things but you don't have them (I removed alt text, added space after src=)

What helped me the most was looking at inputs that worked

example
<img src= "data:image/png;base64,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"/>
 
Thomas LettieriThomas Lettieri
When i gave my last solution I was using a java pc application before using in android, and i found another problem which you also have.  Change Base64.encodeToString(imgBytes, Base64.DEFAULT); to Base64.encodeToString(imgBytes, Base64.NO_WRAP);

This forum explains the difference:
http://stackoverflow.com/questions/20040539/new-line-appending-on-my-encrypted-string