Hey guys, In this post we are going to learn about how to upload files in Salesforce lightning component.
In this example we will attached the files from Custom sObject by help of wrapper apex class in lightning component.
Files we used in this post example:-
File Name | File Type | Description |
---|---|---|
uploadAttachmentCmp.cmp | Lightning Component | It is used to user interface display upload button and toast success message on browser. |
uploadAttachmentCmpConroller.js | JavaScript Controller File | It is used for client side javascript function that is communicate to apex class method. |
uploadFileController.apxc | Apex Class Controller | Upload the file into database server |
Custom Object:- childObjTrigger__c
|
Custom Object | Upload the attachment files on custom sObject Files & Attechment section. |
Final Output
You can download file directly from github by Click Here.
Other related post that would you like to learn in Salesforce
Note:- Custom sObject >> childObjTrigger__c
You need to change custom sObject name with your custom sObject name.
Step 1:- Create Lightning Component : uploadAttachmentCmp.cmp
From Developer Console >> File >> New >> Lightning Component
uploadAttachmentCmp.cmp [Lightning Component File]
<aura:component controller="uploadFileController" implements="force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,forceCommunity:availableForAllPageTypes,force:lightningQuickAction" access="global" >
<aura:attribute name="wrapListItems" type="childObjTrigger__c[]"/>
<aura:handler name="init" value="{!this}" action="{!c.doInit}"/>
<aura:attribute name="accept" type="List" default="['.jpg', '.jpeg','.pdf']"/>
<aura:attribute name="multiple" type="Boolean" default="true"/>
<aura:attribute name="disabled" type="Boolean" default="false"/>
<div class="slds">
<table class="slds-table slds-table--bordered slds-table--col-bordered" style="border-collapse:collapse;">
<thead>
<tr>
<th>Attachment</th>
</tr>
</thead>
<tbody>
<aura:iteration items="{!v.wrapListItems}" var="childObjVar" indexVar="index">
<tr id="{!childObjVar.recordId}">
<td>
<lightning:fileUpload
multiple="{!v.multiple}"
accept="{!v.accept}"
recordId="{!childObjVar.recordId}"
onuploadfinished="{!c.uploadFileAction}" disabled="{!v.disabled}"/>
</td>
</tr>
</aura:iteration>
</tbody>
</table>
<br/><br/>
<!--Start RelatedTopics Section-->
<div style="border:1px #ddd solid; padding:10px; background:#eee; margin:40px 0;">
<p data-aura-rendered-by="435:0"><img src="https://www.w3web.net/wp-content/uploads/2021/05/thumbsUpLike.png" width="25" height="25" style="vertical-align:top; margin-right:10px;" data-aura-rendered-by="436:0"><strong data-aura-rendered-by="437:0"><span style="font-size:16px; font-style:italic; display:inline-block; margin-right:5px;">Don't forget to check out:-</span><a href="https://www.w3web.net/" target="_blank" rel="noopener noreferrer" style="text-decoration:none;" data-aura-rendered-by="440:0">An easy way to learn step-by-step online free Salesforce tutorial, To know more Click <span style="color:#ff8000; font-size:18px;" data-aura-rendered-by="442:0">Here..</span></a></strong></p>
<br/><br/>
<p data-aura-rendered-by="435:0"><img src="https://www.w3web.net/wp-content/uploads/2021/07/tickMarkIcon.png" width="25" height="25" style="vertical-align:top; margin-right:10px;" data-aura-rendered-by="436:0"><strong data-aura-rendered-by="437:0"><span style="font-size:17px; font-style:italic; display:inline-block; margin-right:5px; color:rgb(255 128 0);">You May Also Like →</span> </strong></p>
<div style="display:block; overflow:hidden;">
<div style="width: 50%; float:left; display:inline-block">
<ul style="list-style-type: square; font-size: 16px; margin: 0 0 0 54px; padding: 0;">
<li><a href="https://www.w3web.net/lwc-get-set-lightning-checkbox-value/" target="_blank" rel="noopener noreferrer">How to get selected checkbox value in lwc</a></li>
<li><a href="https://www.w3web.net/display-account-related-contacts-in-lwc/" target="_blank" rel="noopener noreferrer">how to display account related contacts based on AccountId in lwc</a></li>
<li><a href="https://www.w3web.net/create-lightning-datatable-row-actions-in-lwc/" target="_blank" rel="noopener noreferrer">how to create lightning datatable row actions in lwc</a></li>
<li><a href="https://www.w3web.net/if-and-else-condition-in-lwc/" target="_blank" rel="noopener noreferrer">how to use if and else condition in lwc</a></li>
<li><a href="https://www.w3web.net/get-selected-radio-button-value-and-checked-default-in-lwc/" target="_blank" rel="noopener noreferrer">how to display selected radio button value in lwc</a></li>
</ul>
</div>
<div style="width: 50%; float:left; display:inline-block">
<ul style="list-style-type: square; font-size: 16px; margin: 0 0 0 54px; padding: 0;">
<li><a href="https://www.w3web.net/display-account-related-contacts-lwc/" target="_blank" rel="noopener noreferrer">display account related contacts based on account name in lwc</a></li>
<li><a href="https://www.w3web.net/create-lightning-datatable-row-actions-in-lwc/" target="_blank" rel="noopener noreferrer">how to insert a record of account Using apex class in LWC</a></li>
<li><a href="https://www.w3web.net/fetch-picklist-values-dynamic-in-lwc/" target="_blank" rel="noopener noreferrer">how to get picklist values dynamically in lwc</a></li>
<li><a href="https://www.w3web.net/edit-save-and-remove-rows-dynamically-in-lightning-component/" target="_blank" rel="noopener noreferrer">how to edit/save row dynamically in lightning component</a></li>
<li><a href="https://www.w3web.net/update-parent-object-from-child/" target="_blank" rel="noopener noreferrer">update parent field from child using apex trigger</a></li>
</ul>
</div>
<div style="clear:both;"></div>
<br/>
<div class="youtubeIcon">
<a href="https://www.youtube.com/channel/UCW62gTen2zniILj9xE6LmOg" target="_blank" rel="noopener noreferrer"><img src="https://www.w3web.net/wp-content/uploads/2021/11/youtubeIcon.png" width="25" height="25" style="vertical-align:top; margin-right:10px;"/> <strong>TechW3web:-</strong> To know more, Use this <span style="color: #ff8000; font-weight: bold;">Link</span> </a>
</div>
</div>
</div>
<!--End RelatedTopics Section-->
</div>
</aura:component>
Step 2:- Create Lightning Component : uploadAttachmentCmpController.js
From Developer Console >> File >> New >> Lightning Component >> JavaScript Controller
uploadAttachmentCmpController.js [JavaScript Controller]
({
doInit : function(component, event, helper) {
var action = component.get("c.childObjWrapMethod");
action.setCallback(this, function(response){
var state = response.getState();
if(state=='SUCCESS'){
var result = response.getReturnValue();
component.set('v.wrapListItems',result);
}
});
$A.enqueueAction(action);
},
uploadFileAction : function(component, event, helper) {
var uploadedFiles = event.getParam("files");
var documentId = uploadedFiles[0].documentId;
var fileName = uploadedFiles[0].name;
var toastEvent = $A.get("e.force:showToast");
toastEvent.setParams({
"title": "Success!",
"type": "success",
"message": "File "+fileName+" Uploaded successfully."
});
toastEvent.fire();
$A.get('e.force:refreshView').fire();
},
})
Step 3:- Create Lightning Application : uploadFileController.apxc
From Developer Console >> File >> New >> Apex Class
uploadFileController.apxc [Apex Class Controller]
public class cloneFilesFromOldCaseToNew {
public class wrapperChildObjClass{
@AuraEnabled
public Id recordId;
public wrapperChildObjClass(Id recordId){
this.recordId = recordId;
}
}
@AuraEnabled
public static List<wrapperChildObjClass> childObjWrapMethod(){
List<wrapperChildObjClass> wrapObj = NEW List<wrapperChildObjClass>();
List<childObjTrigger__c> childObjList = [SELECT Id, Name FROM childObjTrigger__c LIMIT 1];
FOR(childObjTrigger__c childObjWrp: childObjList){
wrapObj.add(NEW wrapperChildObjClass(childObjWrp.Id));
}
RETURN wrapObj;
}
}
Further post that would you like to learn in Salesforce
How do I upload files to Salesforce?
Enable the preference to upload files as Salesforce Files in Salesforce Classic in Setup. Type Salesforce Files in the Quick Find box, select General Settings, and then click Files uploaded to the Attachments related list on records are uploaded as Salesforce Files, not as attachments.
How do you display an image from static resources in the lightning component?
We can use $Resource. resourceName within an expression. resourceName is the Name of the static resource.
What is ParentId in Attachment Salesforce?
A ParentId is the 18-character Salesforcer Id of the record that the attachment belongs to. To get started creating and updating attachments, first, load the {salesforcer} and {dplyr} packages and login, if needed.
Related Topics | You May Also Like
Our Free Courses →
👉 Get Free Course →
📌 Salesforce Administrators 📌 Salesforce Lightning Flow Builder 📌 Salesforce Record Trigger Flow Builder |
👉 Get Free Course →
📌 Aura Lightning Framework 📌 Lightning Web Component (LWC) 📌 Rest APIs Integration |