如何在 primeng fileupload 上显示 maxFileSize 消息?

How to show maxFileSize message on primeng fileupload?

我正在使用 primeng 文件上传

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

像这样

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

maxFileSize 限制有效。不会上传太大的文件,但我从未看到 invalidFileSizeMessage。在primeng演示页面上,消息在基本模式下没有显示...

如何 show/translate 无效文件大小消息?

您需要使用自定义模式。因为基本模式没有消息内容。 喜欢;

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

这行得通。

找到解决方案

<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");
    }
  }