1
votes

I'm using primeng fileupload

https://www.primefaces.org/primeng/#/fileupload

like this

<p-fileUpload id="btn_uploadImage" accept="image/*" maxFileSize="2000000"
              class="btn btn-primary"
              auto="true"
              mode="basic"
              name="myFile[]" chooseLabel="{{ 'ASSETS.BACKGROUND_IMAGE' | translate}}"
              title="{{'ASSETS.CHANGE_BACKGROUND_IMAGE' | translate}}"
              [url]="apiImageLocation"
              (onUpload)="onUploadImageSuccess($event)" (onError)="onUploadImageError($event)">
</p-fileUpload>

The maxFileSize limitation works. Too big files will not be uploaded, but i never see invalidFileSizeMessage. On primeng demo page the message is not shown in basic mode...

How can i show/translate invalid file size message?

2

2 Answers

0
votes

You need use custom mode. Because basic mode don't have message content. Like;

<p-fileUpload name="demo[]" url="./upload.php" (onUpload)="onUpload($event)"
        multiple="multiple" accept="image/*" maxFileSize="100">
</p-fileUpload>

This gonna work.

0
votes

Found a solution

<p-fileUpload #fileUpload
              auto="true"
              mode="basic"
              [url]="apiImageLocation" accept="image/*"
              maxFileSize="2097152" (onSelect)="validateFileSize($event, fileUpload.maxFileSize)">
</p-fileUpload>

component.ts

public validateFileSize($event: any, maxFileSize: number): void {
    if ($event.files[0].size > maxFileSize) {
      this.toastService.errorMessage("Action");
    }
  }