cari

Rumah  >  Soal Jawab  >  teks badan

Semak saiz fail yang dimuat naik

Saya mempunyai komponen pemuat naik fail dan perlu menambah pengesah saiz di dalamnya

Ini adalah kod untuk pengesah

export const filesDimensionValidator =
  (maxWidth: number, maxHeight: number): ValidatorFn =>
  (control: AbstractControl): ValidationErrors | null => {
    const value: IUploadFileControl = control.value;

    if (value == null) {
      return null;
    }

    for (const x of value.allFiles) {
      if (x.size > maxFileSize) {
        return { file_max_size: VALIDATION_LABEL_ATTACHMENT_MAX_SIZE };
      }
    }

    return null;
  };

Jika untuk gelung x 参数具有 File taip.

Hanya gambar di sini.

Bagaimana untuk mendapatkan lebar dan ketinggian imej dalam fail ini?

P粉463291248P粉463291248482 hari yang lalu430

membalas semua(1)saya akan balas

  • P粉237647645

    P粉2376476452023-09-11 00:14:49

    Buat imej menggunakan Image dan kemudian dapatkan dimensi yang diingini.

    Anda boleh menggunakan file.type来验证xAdakah ia imej:

    Cuba ini:

    // add mime type check
    if (x?.type.includes('image/')) {
      
      const url = URL.createObjectURL(x);
      const img = new Image();
    
      img.onload = function () {
        console.log(img.width, img.height);
        URL.revokeObjectURL(img.src);
      };
    
      img.src = url;
    
    }

    Edit

    Dapatkan saiz serentak:

    // pass file to the method and hold execution
    console.log(await this.getDimensions(x));
    
    // method that gets and return dimensions from a file
      getDimensions(x: File) : Promise<{width:number, height:number}> {
        return new Promise((resolve, reject) => {
          const url = URL.createObjectURL(x);
          const img = new Image();
          img.onload = () => {
            URL.revokeObjectURL(img.src);
            resolve({ width: img.width, height: img.height });
          };
          img.src = url;
        });
      }

    balas
    0
  • Batalbalas