在角度6上传之前如何验证文件

时间:2018-08-12 19:13:01

标签: validation file-upload angular6 mime-types

在角度4及更高的角度上载之前,我如何validate文件?
我想在角度4及以上的角度进行file typefile size的验证。
Screenshot of my issue

对于每个文件,我都会得到正确的文件大小和类型,但 .msg 文件除外。怎么获得 文件类型为 application / vnd.ms-outlook 应用程序/八位位组流  外观文件。请帮帮我。

1 个答案:

答案 0 :(得分:1)

您的问题有点(含糊)。我假设你的意思是,如何从Angular的输入中获取File对象。死了很简单。就像使用香草JS一样。

在您的组件中,创建一个函数来读取文件:

readFile(fileEvent: any) {
   const file = fileEvent.target.files[0];
   console.log('size', file.size);
   console.log('type', file.type);
}

并将其应用于您在模板中输入的(change)事件:

<input type="file" (change)="readFile($event)">

之后,您可以对文件执行任何操作。根据您的问题,样本函数仅获取大小和类型。

Stackblitz示例:https://stackblitz.com/edit/angular-vpvotz

除了(略)之外,您可以定义一个接口以提供类型提示,而不是使用any作为fileEvent类型。

interface HTMLInputEvent extends Event {
    target: HTMLInputElement & EventTarget;
}

在使用时,也请添加File类型。这样您的功能将变为:

readFile(fileEvent: HTMLInputEvent) {
   const file: File = fileEvent.target.files[0];
   console.log('size', file.size);
   console.log('type', file.type);
}

但是,您不必这样做。尽管不推荐使用any类型。