在Aurelia-Typescript中上传之前如何检查图像的大小和扩展名?

我正在尝试在Aurelia / Typescript中上传之前检查图像的大小和扩展名。 为此:我有两个课程: 即 logo-extension.ts

export class LogoExtension {
  private logoExtension: string;

  constructor(logoExtension) {
       if (!(/(.png|.jpg|.jpeg)$/.test(logoExtension))) {
      throw "logo is in invalid format";
    }
    this.logoExtension = logoExtension;
  }

和我的logo-size.ts是:

 export class LogoSize {
  private logoSize: number;
  private maximumLogoSize: number = 25000000;

  constructor(logoSize) {

    if (logoSize === undefined) {
      logoSize = "";
    }
    if (logoSize > this.maximumLogoSize) {
      throw "logo size should be less than 25MB"
    } else {
      this.logoSize = logoSize;
    }
  }
}

但是问题在于,在主类中,

logo.ts

,我无法获取我上传的图像的扩展名和大小,该图像可以通过aurelia的files.bind访问。 我使用了以下内容:

 getExtension(filename) {
    var parts = filename.split('.');
    return parts[parts.length - 1]
  }

  getSize(logo) {
    let inputFile = document.getElementById("file");
    return inputFile[0].size;
  }

 var x = document.getElementById('input'); // get the file input element in your form
    var f = x.files.item(0);

第二行中的files总是给出错误。 我不想使用任何外部软件包/依赖项。

wenjin666666 回答:在Aurelia-Typescript中上传之前如何检查图像的大小和扩展名?

对于代码

  getSize(logo) {
    let inputFile = document.getElementById("file");
    return inputFile[0].size;
  }

它给您带来错误,因为它不知道.size查询的元素上的属性document.getElementById('file')。您是说:document.getElementById('file').files

如果是这样,还需要将其强制转换为HTMLInputElement

let inputFile = (document.getElementById('file') as HTMLInputElement).files;
本文链接:https://www.f2er.com/2733431.html

大家都在问