Upload Files in Lightning Component | how to upload file dynamically using the wrapper class in Salesforce

2,146 views

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

Why Should You Schedule Meeting?

🎯 If You Are Facing Any Of These 6 Challenges. Schedule Meeting With Me.

  • Learn Salesforce Development
  • Career Confusion
  • No Interview Call
  • Low Salary
  • No Promotion/Growth
  • No Finding New Job Opportunity
  • Why you stucking from past so many years in same company?

 

file upload in lightning component -- w3web.net

 

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]

  1.    <aura:component controller="uploadFileController" implements="force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,forceCommunity:availableForAllPageTypes,force:lightningQuickAction" access="global" >
  2. 	<aura:attribute name="wrapListItems" type="childObjTrigger__c[]"/>
  3.        <aura:handler name="init" value="{!this}" action="{!c.doInit}"/>
  4.  
  5.        <aura:attribute name="accept" type="List" default="['.jpg', '.jpeg','.pdf']"/>
  6.        <aura:attribute name="multiple" type="Boolean" default="true"/>
  7.        <aura:attribute name="disabled" type="Boolean" default="false"/>   
  8.  
  9.     <div class="slds">        
  10.  
  11.         <table class="slds-table slds-table--bordered slds-table--col-bordered" style="border-collapse:collapse;">
  12.             <thead> 
  13.                 <tr>                    
  14.                     <th>Attachment</th>                   
  15.                 </tr>
  16.             </thead>
  17.             <tbody>
  18.                 <aura:iteration items="{!v.wrapListItems}" var="childObjVar" indexVar="index">
  19.                     <tr id="{!childObjVar.recordId}">                        
  20.                         <td>
  21.                             <lightning:fileUpload
  22.                               multiple="{!v.multiple}" 
  23.                               accept="{!v.accept}"
  24.                               recordId="{!childObjVar.recordId}" 
  25.                               onuploadfinished="{!c.uploadFileAction}" disabled="{!v.disabled}"/>
  26.                         </td>
  27.                     </tr>
  28.                 </aura:iteration>
  29.             </tbody>
  30.         </table>        
  31.  
  32.         <br/><br/>
  33.    <!--Start RelatedTopics Section-->
  34. <div style="border:1px #ddd solid; padding:10px; background:#eee; margin:40px 0;">
  35.  
  36.             <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>
  37.  
  38.             <br/><br/>
  39.             <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>
  40.             <div style="display:block; overflow:hidden;"> 
  41.                 <div style="width: 50%; float:left; display:inline-block">
  42.                     <ul style="list-style-type: square; font-size: 16px; margin: 0 0 0 54px; padding: 0;"> 
  43.                         <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>
  44.                         <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>
  45.                         <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>
  46.                         <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>
  47.                         <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>
  48.                     </ul>
  49.             </div>
  50.  
  51.             <div style="width: 50%; float:left; display:inline-block">
  52.                     <ul style="list-style-type: square; font-size: 16px; margin: 0 0 0 54px; padding: 0;"> 
  53.                         <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>
  54.                         <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>
  55.                         <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>
  56.                         <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>
  57.                         <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>
  58.                     </ul>
  59.                 </div>
  60.                <div style="clear:both;"></div> 
  61.                <br/>
  62.                 <div class="youtubeIcon">
  63.                     <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>
  64.                 </div>
  65.     </div>
  66.  
  67. </div>
  68.  
  69.   <!--End RelatedTopics Section-->
  70.  
  71.     </div>
  72.  
  73.    </aura:component>

Step 2:- Create Lightning Component : uploadAttachmentCmpController.js

From Developer Console >> File >> New >> Lightning Component >> JavaScript Controller

uploadAttachmentCmpController.js [JavaScript Controller]

  1.    ({
  2.     doInit : function(component, event, helper) {
  3.         var action = component.get("c.childObjWrapMethod"); 
  4.  
  5.         action.setCallback(this, function(response){
  6.             var state = response.getState();
  7.  
  8.             if(state=='SUCCESS'){
  9.                 var result = response.getReturnValue();                
  10.                 component.set('v.wrapListItems',result);
  11.             }
  12.         });
  13.         $A.enqueueAction(action);
  14.     },
  15.  
  16.     uploadFileAction : function(component, event, helper) {
  17.         var uploadedFiles = event.getParam("files");
  18.         var documentId = uploadedFiles[0].documentId;
  19.         var fileName = uploadedFiles[0].name;
  20.         var toastEvent = $A.get("e.force:showToast");
  21.         toastEvent.setParams({
  22.             "title": "Success!",   
  23.             "type": "success",
  24.             "message": "File "+fileName+" Uploaded successfully."
  25.         });
  26.         toastEvent.fire();
  27.         $A.get('e.force:refreshView').fire();         
  28.        },
  29.    })

Step 3:- Create Lightning Application : uploadFileController.apxc

From Developer Console >> File >> New >> Apex Class

uploadFileController.apxc [Apex Class Controller]

  1.    public class cloneFilesFromOldCaseToNew {
  2.  
  3.     public class wrapperChildObjClass{                
  4.         @AuraEnabled
  5.         public Id recordId;        
  6.  
  7.         public wrapperChildObjClass(Id recordId){            
  8.             this.recordId = recordId;                
  9.         }
  10.     }
  11.  
  12.  
  13.     @AuraEnabled
  14.     public static List<wrapperChildObjClass> childObjWrapMethod(){
  15.       List<wrapperChildObjClass> wrapObj = NEW List<wrapperChildObjClass>();   
  16.        List<childObjTrigger__c> childObjList = [SELECT Id, Name FROM childObjTrigger__c LIMIT 1];         
  17.         FOR(childObjTrigger__c childObjWrp: childObjList){
  18.             wrapObj.add(NEW wrapperChildObjClass(childObjWrp.Id));
  19.         }     
  20.         RETURN wrapObj;
  21.      }    
  22.    }

 

Further post that would you like to learn in Salesforce

 

 

 

FAQ (Frequently Asked Questions)

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




Hi, This is Vijay Kumar behind the admin and founder of w3web.net. I am a senior software developer and working in MNC company from more than 8 years. I am great fan of technology, configuration, customization & development. Apart of this, I love to write about Blogging in spare time, Working on Mobile & Web application development, Salesforce lightning, Salesforce LWC and Salesforce Integration development in full time. [Read full bio] | | The Sitemap where you can find all published post on w3web.net

Leave a Comment