Created
April 7, 2021 08:10
-
-
Save amitastreait/1d586ac004ae7a8b161708e927beaffc to your computer and use it in GitHub Desktop.
Custom File Uploader using Lightning Web Component
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public with sharing class FileUploadService { | |
@AuraEnabled | |
public static Id saveTheChunkFile(Id parentId, String fileName, String base64Data, String contentType, String fileId){ | |
base64Data = EncodingUtil.urlDecode(base64Data, 'UTF-8'); | |
if ( String.isBlank(fileId) ) { | |
fileId = saveFiles(parentId, fileName, base64Data ); | |
} else { | |
appendToFile(fileId, base64Data); | |
} | |
return Id.valueOf(fileId); | |
} | |
@AuraEnabled | |
public static Id saveFiles(Id recordId, String fileName, String base64Data ) { | |
ContentVersion contentToInsert =new ContentVersion(); | |
contentToInsert.Title =fileName; | |
contentToInsert.VersionData=EncodingUtil.base64Decode(base64Data); | |
contentToInsert.PathOnClient='/' + fileName ; | |
contentToInsert.IsMajorVersion = false; | |
insert contentToInsert; | |
contentToInsert = [select id, ContentDocumentId from ContentVersion WHERE Id =: contentToInsert.Id]; | |
ContentDocumentLink cl = new ContentDocumentLink(); | |
cl.ContentDocumentId = contentToInsert.ContentDocumentId; | |
cl.LinkedEntityId = recordId; | |
cl.ShareType = 'V'; | |
cl.Visibility = 'AllUsers'; | |
insert cl; | |
return contentToInsert.id; | |
} | |
@AuraEnabled | |
public static void appendToFile(Id contentDocumentId, String base64Data) { | |
//base64Data = EncodingUtil.urlDecode(base64Data, 'UTF-8'); | |
ContentVersion versionData = [ | |
SELECT Id, VersionData,ContentDocumentId | |
FROM ContentVersion | |
WHERE Id = :contentDocumentId | |
]; | |
String existingBody = EncodingUtil.base64Encode(versionData.VersionData); | |
versionData.VersionData = EncodingUtil.base64Decode(existingBody + base64Data); | |
update versionData; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment