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">

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .