validation - 如何在 Angular 6 中上传之前验证文件
问题描述
validate
在以 Angular 4 及更高版本上传之前如何归档?
我想要Angular 4file type
及file size
更高版本的验证。
我的问题截图
对于每个文件,我都得到正确的文件大小和类型,除了.msg文件。如何 为Outlook文件获取文件类型为application/vnd.ms-outlook application/octet-stream。请帮帮我。
解决方案
你的问题有点(很多)模糊。我假设您的意思是,如何File
从 Angular 的输入中获取对象。死的简单。与 vanilla(ish) 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
不推荐类型。
推荐阅读
- javascript - CanDeactivate 在 Angular 6 中无法正常工作
- python - 尝试在 Python 中查找断开连接的图
- javascript - 在核心规则全部为正之前,我的 Joi 扩展规则不会被执行
- .net - 忽略我没有源代码的 .NET 应用程序中的异常
- c# - 映射通用值列表的问题
- symfony - Twig if 语句不适用于扩展
- html - 尽管设置了“right : 0px”,为什么我的用户消息不正确;?
- java - 列表中的按钮侦听器产生意外结果
- angular - 为什么导航到子路线时不显示?
- python-3.x - 使用 pandas 在特定的 Excel 单元格中插入数据