Hey guys, In this post we are going to learn about how to Display an Upload Icon on the lightning component if a object record has files or any kind of attachment..
Requirement:- If upload a custom file on lightning component such like (jpg’, ‘jpeg’,’pdf’, ‘doc’) etc.. then against of every record display should be an attachment Image on right side of table.
- Don’t forget to check out:- Upload Files in Lightning Component Click Here For More Information
Files we used in this post example:-
fileAttachmentCmp.cmp | Lightning Component | It is used for display the name, address, email, and upload file button on the table. |
fileAttachmentCmpConroller.js | JavaScript Controller File | It is used for communicate to server side apex method and fetch the record using init fuction. |
fileAttachmentCmpHelper.js | JavaScript Helper File | It is used for refresh the page after delete the record. |
wrapperCustomObjCtrCmp.apxc | Apex Class Controller | It is used for save the upload images on sObject database. |
Custom Object:- NewStudent__c Custom Object Fields:- Name, Email__c Address__c |
Custom Object and their fields | Display an upload Image on right side of table in the lightning component if a record has an attachment. |
Final Output
- Do you know:- The cheapest and best smartphone in your budget 2022?
Other related post that would you like to learn in lightning component.
Step 1:- Create Lightning Component : fileAttachmentCmp.cmp
From Developer Console >> File >> New >> Lightning Component
fileAttachmentCmp.cmp [Lightning Component File]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
<aura:component controller="wrapperCustomObjCtrCmp" implements="force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,forceCommunity:availableForAllPageTypes,force:lightningQuickAction,lightning:isUrlAddressable" access="global" > <aura:attribute name="wrapListItems" type="NewStudent__c[]"/> <aura:handler name="init" value="{!this}" action="{!c.doInit}"/> <aura:attribute name="recSelectId" type="String" default=""/> <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 slds-p-horizontal--medium"> <table class="slds-table slds-table--bordered slds-table--col-bordered" style="border-collapse:collapse;"> <thead> <tr> <th>Record Id</th> <th>Student Name</th> <th>Address</th> <th>Email</th> <th>Upload File</th> <th></th> </tr> </thead> <tbody> <aura:iteration items="{!v.wrapListItems}" var="wrapVar" indexVar="index"> <tr id="{!wrapVar.recStudentId}"> <td>{!wrapVar.recStudentId}</td> <td>{!wrapVar.studentName}</td> <td>{!wrapVar.studentAddress}</td> <td>{!wrapVar.studentEmail}</td> <td> <lightning:fileUpload multiple="{!v.multiple}" accept="{!v.accept}" recordId="{!wrapVar.recStudentId}" onuploadfinished="{!c.uploadFileAction}" disabled="{!v.disabled}"/> </td> <td> <aura:if isTrue="{!wrapVar.checkAttachFile}"> <lightning:buttonIcon tabindex="{!wrapVar.recStudentId}" iconName="utility:upload" name="{!wrapVar.recStudentId}" variant="bare" onclick="{!c.navigateAttachFile}"/> </aura:if> </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 : fileAttachmentCmpConroller.js
From Developer Console >> File >> New >> Lightning Component >> JavaScript Controller
fileAttachmentCmpConroller.js [JavaScript Controller]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
({ doInit : function(component, event, helper) { var action = component.get("c.appCustomWrapListMthd"); 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 Component : fileAttachmentCmpHelper.js
From Developer Console >> File >> New >> Lightning Component >> JavaScript Helper
fileAttachmentCmpHelper.js [JavaScript Helper File]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
({ refreshView : function(component, event, helper) { var action = component.get("c.appCustomWrapListMthd"); action.setCallback(this, function(response){ var state = response.getState(); //alert(state); if(state=='SUCCESS'){ var result = response.getReturnValue(); // alert('result ' + JSON.stringify(result)); component.set('v.wrapListItems',result); } }); $A.enqueueAction(action); } }) |
Step 4:- Create Lightning Application : wrapperCustomObjCtrCmp.apxc
From Developer Console >> File >> New >> Apex Class
wrapperCustomObjCtrCmp.apxc [Apex Class Controller]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
public class wrapperCustomObjCtrCmp { public class wrapperCustomClass{ @AuraEnabled public string studentName; @AuraEnabled public string studentEmail; @AuraEnabled public string studentAddress; @AuraEnabled public Id recStudentId; @AuraEnabled public boolean checkAttachFile= false; public wrapperCustomClass(string studentName, string studentEmail, string studentAddress, Id recStudentId,boolean checkAttachFile){ this.studentName = studentName; this.studentEmail = studentEmail; this.studentAddress = studentAddress; this.recStudentId = recStudentId; this.checkAttachFile=checkAttachFile; } } @AuraEnabled public static List<wrapperCustomClass> appCustomWrapListMthd(){ List<NewStudent__c> newStudent = new List<NewStudent__c>(); List<wrapperCustomClass> custWrapObj = new List<wrapperCustomClass>(); List<NewStudent__c> newStudentView =[Select Id, Name, Email__c, Address__c From NewStudent__c]; Map<Id,contentdocumentlink> projCheckIdDocMap = new Map<Id,contentdocumentlink> (); Set<Id> projChecklistIdSet= new Set<Id> (); for(NewStudent__c de: newStudentView) { projChecklistIdSet.add(de.Id); } List<Contentdocumentlink> listDocs = [select Id,LinkedEntityId from contentdocumentlink where LinkedEntityId IN :projChecklistIdSet ]; for(Contentdocumentlink doc: listDocs) { projCheckIdDocMap.put(doc.LinkedEntityId, doc); } boolean hasAttch= false; for(NewStudent__c studentObj:newStudentView){ if(projCheckIdDocMap.get(studentObj.Id)!=null){ hasAttch=true; system.debug('hasAttch###' + hasAttch); }else{ hasAttch=false; } custWrapObj.add(new wrapperCustomClass(studentObj.Name,studentObj.Email__c, studentObj.Address__c,studentObj.Id, hasAttch)); } return custWrapObj; } } |
Further post that would you like to learn in lightning component.
How do you display an image in the lightning component?
To display images, use the HTML 'img' element. Include an image in your component by uploading it as a static resource or content asset.To display an icon, use the lightning:icon component, which gives you access to Salesforce Lightning Design System icons or your own custom icon.
How do I preview files in lightning component?
A lightning:fileCard component displays a preview of a file. On desktops, clicking the file preview opens the SVG file preview player, enabling you to preview images, documents, and other files in the browser. The file preview player provides quick access to file actions, such as upload, delete, download, and share.
What is lightning out?
Lightning Out is a technology where one can take Lightning components built on the Force.com platform to the external applications like Sharepoint, SAP, Node apps on Heroku and many others.
Related Topics | You May Also Like
- Your reaction of the article ▾
You Can Learn Stock Market Fundamental Analysis with the best stock market course in Indore. Stock Homes provide live practical knowledge with money & risk management skills courses from Stock Homes. Learn Stock Market online with courses like Diploma in Financial Market. Join Short-Term Course with 100% Self-Trading Programme for Beginners Enroll Now! Get NISM certification courses at Stock Homes Best NISM Course.
You Can Join Stock Market Classes In IndoreBest NISM & Trading Share Market Technical Analysis
very informative
good keep it on
Very Good Article To understand Everything
Good article
In this blog I get a great post sir
In this blog I get a great post sir please also visit my blog I post great content
Thanks For Sharing The Amazing content. I Will also share with my friends. Great Content thanks a lot.
Very Nice Post
Do Follow 5 Backlinks
Nice Blog
5 Internet Approval Site (Do Follow Backlinks)
very nice collection and good thoughts this is the very attractive site and too good effect.
Very helpful post and good information to lead me thanku so much
Nice Blog…
Amazing article, and I have learned a lot
Nice arrticle