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

Aas*_*rty 5 validation file-upload mime-types angular6

如何validate在以 4 角及以上的角度上传之前上传文件?
我想file typefile size在角4和上述验证。
我的问题截图

对于每个文件,我都获得了正确的文件大小和类型,除了.msg文件。如何获取文件类型的应用程序/ vnd.ms-Outlook应用程序/八位字节流展望文件。请帮帮我。

pre*_*fly 9

你的问题有点(很多)含糊不清。我假设您的意思是,您如何File从 Angular 的输入中获取对象。死的简单。与使用 vanilla(ish) JS 的方式相同。

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

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

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

<input type="file" (change)="readFile($event)">
Run Code Online (Sandbox Code Playgroud)

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

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

顺便说一句,您可以定义一个接口来为您提供类型提示,而不是any用作fileEvent类型。

interface HTMLInputEvent extends Event {
    target: HTMLInputElement & EventTarget;
}
Run Code Online (Sandbox Code Playgroud)

在此过程中,还要添加File类型。所以你的功能变成:

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

但是,您不必这样做。虽然any不推荐类型。