Wednesday, October 3, 2012

To insert image into Rich Text Area field dynamically using Apex


I would like to give you a brief that whenever a user wants to upload any file (Image) and wants that it directly get inserted into the Rich Text Area field.

So I have developed a code wherein any user can upload any image file and provides the document name where it will stored and get dynamically inserted onto the Rich Text Area field.


Kindly refer this & modify it according to your requirement and test it before deploying it in your Org.


***************Apex Class***************

public class ImagInsertionIntoRichText
{

public String naam{get;set;}
public ID folderid{get;set;}
public Blob file{get;set;}

public void insrt()
{

Document d= new Document();

d.name = naam;
d.body=file; // body field in document object which holds the file.
d.folderid='00l90000000inFEAAY'; //folderid where the document will be stored insert d;
insert d;

Case cs = new Case();
cs.FirstExample__Comments__c = '<img src="https://rustagiankit-developer-edition--c.ap1.content.force.com/servlet/servlet.FileDownload?file='+d.id+'" width="500" height="281"></img>'; //FirstExample is namespace & Comments__c is Rich Text Area field
cs.Status = 'New';
cs.Origin = 'Web';
insert cs;
}
}
*************************************
***************VF page***************

<apex:page controller="ImagInsertionIntoRichText">
<apex:form>
<apex:outputLabel value="Document Name"></apex:outputLabel>
<apex:inputText id="name" value="{!naam}"/>

<apex:outputLabel value="Upload Document"></apex:outputLabel>
<apex:inputfile value="{!file}"></apex:inputfile>

<apex:commandButton value="Save" action="{!insrt}" id="save"/>
</apex:form>
</apex:page>
**************************************
NOTE :- If you have a existing image stored in the Document, then you can only refer to below mentioned snippet of code only :-


Case cs = new Case();
cs.FirstExample__Comments__c = '<img src="https://rustagiankit-developer-edition--c.ap1.content.force.com/servlet/servlet.FileDownload?file=01590000000QPTY" width="500" height="281"></img>';
cs.Status = 'New';
cs.Origin = 'Web';
insert cs;

3 comments: