0

im working with LWC, creating a button to upload files. but, when i click submit button console shows that error: "Too many DML statements: 1"

<template>
    <lightning-card title="Import Settings" icon-name="custom:custom14">
        <div class="slds-m-around_medium">
            <lightning-input type="file" label="attachment" onchange={openFileUpload}></lightning-input>
        </div>
        <lightning-button variant="brand" label="submit" title="Submit" onclick={handleClick} class="slds-m-left_x-small"></lightning-button>   
    </lightning-card>
</template>
public class FileUploaderClass {
  @AuraEnabled
   
  public static String uploadFile(String base64, String filename, String recordId) {
    ContentVersion cv = createContentVersion(base64, filename);
    ContentDocumentLink cdl = createContentLink(cv.Id, recordId);
    if (cv == null || cdl == null) { return null; }
    return cdl.Id;
  }
  
  private static ContentVersion createContentVersion(String base64, String filename) {
    ContentVersion cv = new ContentVersion();
    cv.VersionData = EncodingUtil.base64Decode(base64);
    cv.Title = filename;
    cv.PathOnClient = filename;
    try {
      insert cv;
      return cv;
    } catch(DMLException e) {
      System.debug(e);
      return null;
    }
  }
    
  private static ContentDocumentLink createContentLink(String contentVersionId, String recordId) {
              if (contentVersionId == null || recordId == null) { return null; }
    ContentDocumentLink cdl = new ContentDocumentLink();
    cdl.ContentDocumentId = [
      SELECT ContentDocumentId 
      FROM ContentVersion 
      WHERE Id =: contentVersionId
    ].ContentDocumentId;
    cdl.LinkedEntityId = recordId;
    // ShareType is either 'V', 'C', or 'I'
    // V = Viewer, C = Collaborator, I = Inferred
    cdl.ShareType = 'V';
    try {
      insert cdl;
      return cdl;
    } catch(DMLException e) {
      System.debug(e);
      return null;
    }
  }
  
}

Im following this tutorial, in the video everything seems to work well

1 Answer 1

0

I can fixed it, in the lwc.page I added readOnly="false:

<apex:page title="Boomtown Settings" readOnly="false">

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.