| <!-- Name: UploadImages | |
| Decription: Upload images in files object and show them on richtex field on record. | |
| Created Date: 17/03/2019 | |
| LastModified Date: 17/03/2019 | |
| Created By: Arun Kumar | |
| --> | |
| <apex:page controller="uploadImageCntrl" sidebar="false"> | |
| <html> | |
| <head> | |
| <apex:slds /> | |
| <style> | |
| .slds-scope .slds-page-header { | |
| padding: 1rem 1rem; | |
| /* border-bottom: 1px solid rgb(221, 219, 218); */ | |
| /* border-radius: .25rem; */ | |
| background: rgb(243, 242, 242); | |
| background-clip: padding-box; | |
| /* box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.10); */ | |
| border: 1px solid rgb(221, 219, 218); | |
| } | |
| #bodyPart{ | |
| border: 1px solid rgb(221, 219, 218); | |
| padding:1rem 1rem; | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <apex:form > | |
| <div class="slds"> | |
| <div class="slds-grid"> | |
| <div class="slds-col slds-size--12-of-12"> | |
| <div class="slds-page-header"> | |
| Upload Image | |
| </div> | |
| </div> | |
| </div> | |
| <div id="bodyPart"> | |
| <apex:inputFile value="{!imageFile}" styleClass="" /> | |
| <apex:actionRegion > | |
| <apex:commandButton value="Upload" action="{!uploadImg}" Styleclass="slds-button slds-button--brand" /> | |
| </apex:actionRegion> | |
| </div> | |
| </div> | |
| </apex:form> | |
| </body> | |
| </html> | |
| </apex:page> |
| /* Name: uploadImageCntrl | |
| Description: Upload files and show image in richtext field on object record page. | |
| Created Date: 17/03/2019 | |
| LastModified Date: 17/03/2019 | |
| Created By: Arun Kumar | |
| */ | |
| public with sharing class uploadImageCntrl { | |
| public transient Blob imageFile{get;set;} | |
| public string parentRecId =''; | |
| public void uploadImageCntrl(){ | |
| } | |
| public PageReference uploadImg() { | |
| parentRecId = ApexPages.currentPage().getParameters().get('id'); | |
| system.debug('record id: ' +parentRecId ); | |
| //ContentVersion | |
| ContentVersion conVer = new ContentVersion(); | |
| conVer.ContentLocation = 'S'; // S specify this document is in SF, use E for external files | |
| conVer.Title = 'Test File'; | |
| conVer.PathOnClient = 'Test File'; | |
| conVer.VersionData = imageFile; // | |
| insert conVer; | |
| ContentVersion cv = [select id,ContentDocumentId from ContentVersion where id =: conVer.id]; | |
| //Create ContentDocumentLink | |
| ContentDocumentLink cDe = new ContentDocumentLink(); | |
| cDe.ContentDocumentId = cv.contentDocumentId; | |
| cDe.LinkedEntityId = parentRecId; // you can use objectId,GroupId etc | |
| cDe.ShareType = 'V'; // Inferred permission, checkout description of ContentDocumentLink object for more details | |
| //Insert content document link | |
| insert cDe ; | |
| //ContentDistribution: Represents information about sharing a document externally | |
| ContentDistribution cd = new ContentDistribution(); | |
| cd.Name = 'Test File'; | |
| cd.ContentVersionId = conVer.Id; | |
| //insert | |
| insert cd; | |
| ContentDistribution distribution = [select Name,ContentDownloadUrl from ContentDistribution where id=: cd.id]; | |
| Account acc = [select id,ARI__Images__c from Account where id=: parentRecId]; //ARI__Images__c (ARI__ is Namspace. it will be different in your case) | |
| if(acc.ARI__Images__c == null){ | |
| acc.ARI__Images__c =''; | |
| } | |
| acc.ARI__Images__c += '<img src="'+distribution.ContentDownloadUrl+'" width="478" height="247">'+'</img><br/>'; | |
| update acc; | |
| return null; | |
| } | |
| } |
Hope this blog post helps many.
Happy Coding… 🙂




