【发布时间】:2021-06-18 10:24:22
【问题描述】:
我正在尝试验证多个文件上传的文件类型,但它显示未找到“错误”。请让我知道我是否要离开,如果是这样,检查多个文件的文件类型的更好方法是什么。谢谢!
test-data.component.ts
testDataFileType = "doc,docx,xls,xlsx,pdf,application/msword,application/msexcel,application/pdf";
tdmForm=this.fb.group({
requirement:this.fb.array([this.fb.control('', [Validators.required, fileExtensionValidator(this.testDataFileType)])])
});
constructor(public fb: FormBuilder,){}
文件扩展验证器.directive.ts
export function fileExtensionValidator(validExt: string): ValidatorFn {
return (control: AbstractControl): { [key: string]: any } | null => {
let forbidden = true;
if (control.value) {
const fileExt = control.value.split('.').pop();
validExt.split(',').forEach(ext => {
if (ext.trim() == fileExt) {
forbidden = false;
}
});
}
return forbidden ? { 'inValidExt': true } : null;
};
}
test-data.component.html
<file-upload [acceptedFileType]="testDataFileType" imagePath="upload_files.png"
typeOfFile="requirement"[files]="requirement"></file-upload>
<div *ngIf="isFormSubmitted && this.requirement.length == 0" class="text-error">
<ng-container>You must upload a file.</ng-container>
</div>
<div *ngFor="let f of this.requirement; index as i">
<div *ngIf="this.requirement[i].errors?.inValidExt">Invalid file type.</div>
</div>
【问题讨论】:
-
我看到很多代码,但没有很多解释。哪一行代码触发了“找不到错误”?这是编译时错误还是运行时错误?你的代码编译了吗?能否提供一个可运行的示例?
-
感谢您的回复。无效的文件类型。它说“错误?”这行代码中不存在。它编译。运行时错误。
标签: angular typescript validation file-type multiple-file-upload