【发布时间】:2021-08-17 07:16:59
【问题描述】:
我使用了角度形式和文件输入类型以及自定义验证器。
问题是,
每当表单值发生变化时,我只会得到假路径 URL。假路径 URL 没有文件元数据。那么我如何验证图像尺寸。
fake_path : C:\fakepath\lutosa_images_480x600.jpeg .
可以使用角形吗?
或
是否可以从 fake_path 获取文件元数据?
html 文件:
<form [formGroup]="productCategoryAddForm">
<input
type="file"
accept="image/*"
(change)="getImageData($event)"
formControlName="product_category_image"
/>
</form>
ts 文件:
initializeForm() {
this.productCategoryAddForm = this.fb.group({
product_category_image: [null, [Validators.required, dimensionValidator]],
});
}
自定义验证器
import { AbstractControl } from '@angular/forms';
export interface ReturnType {
[key: string]: boolean;
}
export function dimensionValidator(control: AbstractControl): ReturnType | null {
console.log('control.value', control.value);
if (control.value) {
//success
} else {
//fail
}
}
注意:
没有角度形式,我可以验证图像尺寸。使用 change() 和 FileReader();
【问题讨论】:
-
您可以使用 fileReader() 添加代码以检查
dimensionValidator内的图像尺寸。 -
@GaurangDhorda 我得到了这个值 fake_path : C:\fakepath\lutosa_images_480x600.jpeg 所以我不能使用 fileReader() 直接获取图像尺寸 dimensionValidator。
标签: angular angular-reactive-forms reactive-forms