在 Aurelia-Typescript 中上传之前如何检查图像的大小和扩展?
How to check size and extension of an image before upload in Aurelia-Typescript?
我正在尝试在 Aurelia/Typescript 中上传之前检查图像大小和扩展名。
为此:我有两个 classes:
IE。
徽标-extension.ts
export class LogoExtension {
private logoExtension: string;
constructor(logoExtension) {
if (!(/(.png|.jpg|.jpeg)$/.test(logoExtension))) {
throw "logo is in invalid format";
}
this.logoExtension = logoExtension;
}
我的标志-size.ts是:
export class LogoSize {
private logoSize: number;
private maximumLogoSize: number = 25000000;
constructor(logoSize) {
if (logoSize === undefined) {
logoSize = "";
}
if (logoSize > this.maximumLogoSize) {
throw "logo size should be less than 25MB"
} else {
this.logoSize = logoSize;
}
}
}
但问题是,主要是class,
logo.ts
,我无法获取我上传的图像的扩展名和大小,该图像由 aurelia 的 files.bind 访问。
我使用了以下内容:
getExtension(filename) {
var parts = filename.split('.');
return parts[parts.length - 1]
}
getSize(logo) {
let inputFile = document.getElementById("file");
return inputFile[0].size;
}
还有
var x = document.getElementById('input'); // get the file input element in your form
var f = x.files.item(0);
第二行的files
总是报错。
我不想使用任何外部 package/dependency。
为代码
getSize(logo) {
let inputFile = document.getElementById("file");
return inputFile[0].size;
}
它给你错误,因为它不知道 document.getElementById('file')
查询的元素上的 属性 .size
。您的意思是:document.getElementById('file').files
?
如果是这样,你还需要将其转换为HTMLInputElement
:
let inputFile = (document.getElementById('file') as HTMLInputElement).files;
我正在尝试在 Aurelia/Typescript 中上传之前检查图像大小和扩展名。 为此:我有两个 classes: IE。 徽标-extension.ts
export class LogoExtension {
private logoExtension: string;
constructor(logoExtension) {
if (!(/(.png|.jpg|.jpeg)$/.test(logoExtension))) {
throw "logo is in invalid format";
}
this.logoExtension = logoExtension;
}
我的标志-size.ts是:
export class LogoSize {
private logoSize: number;
private maximumLogoSize: number = 25000000;
constructor(logoSize) {
if (logoSize === undefined) {
logoSize = "";
}
if (logoSize > this.maximumLogoSize) {
throw "logo size should be less than 25MB"
} else {
this.logoSize = logoSize;
}
}
}
但问题是,主要是class,
logo.ts
,我无法获取我上传的图像的扩展名和大小,该图像由 aurelia 的 files.bind 访问。 我使用了以下内容:
getExtension(filename) {
var parts = filename.split('.');
return parts[parts.length - 1]
}
getSize(logo) {
let inputFile = document.getElementById("file");
return inputFile[0].size;
}
还有
var x = document.getElementById('input'); // get the file input element in your form
var f = x.files.item(0);
第二行的files
总是报错。
我不想使用任何外部 package/dependency。
为代码
getSize(logo) {
let inputFile = document.getElementById("file");
return inputFile[0].size;
}
它给你错误,因为它不知道 document.getElementById('file')
查询的元素上的 属性 .size
。您的意思是:document.getElementById('file').files
?
如果是这样,你还需要将其转换为HTMLInputElement
:
let inputFile = (document.getElementById('file') as HTMLInputElement).files;