Angular 使用ng2文件上载获取图像的宽度和高度

Angular 使用ng2文件上载获取图像的宽度和高度,angular,ng2-file-upload,Angular,Ng2 File Upload,我想使用ng2文件上传和Angular 6获取并检查上传图像的宽度和高度 到目前为止,我的代码是: constructor() { this.uploader = this.initializeUploader("url"); } public uploader; private initializeUploader(url: string): FileUploader { const uploadOptions: FileUploaderOptions = {

我想使用ng2文件上传和Angular 6获取并检查上传图像的宽度和高度

到目前为止,我的代码是:

constructor() {
    this.uploader = this.initializeUploader("url");
}

public uploader;


private initializeUploader(url: string): FileUploader {
    const uploadOptions: FileUploaderOptions = {
        allowedMimeType: ['image/jpeg', 'image/png' ],

    }
    const uploader = new FileUploader(uploadOptions);

    uploader.onAfterAddingFile = item => {
        console.log(item);
        //Want to get width here
    }

    return uploader;
}
以及HTML:

<input type="file" ng2FileSelect [uploader]="uploader" />
。但我不知道如何/在何处导入“上传”。还找到了要添加的解决方案

ngf-min-height="1"

在输入元素中,但如果输入图像的大小错误,我找不到可以“捕获”错误的位置。

将文件转换为base64,并创建一个以该base64为源的图像。在
load
hook期间,您可以获得图像的大小。这里是一个工作片段

函数更改(){
常量输入=document.querySelector('input');
const file=input.files[0];
getBase64(文件)。然后(base64=>{
const img=新图像();
img.onload=()=>console.log(img.width,img.height);
img.src=base64;
});
}
函数getBase64(文件){
返回新承诺((解决、拒绝)=>{
const reader=new FileReader();
reader.readAsDataURL(文件);
reader.onload=()=>resolve(reader.result);
reader.onerror=错误=>拒绝(错误);
});
}

最后,我对trichetriche的帖子做了一些改动,从而获得了这篇文章:

    public change() {
    const input = document.querySelector('input');
    const file = input.files[0];

    this.getBase64(file).then(base64 => {
      const img = new Image();
      img.onload = () => console.log(img.width, img.height);
      img.src = base64.toString();
    });
  }

  public getBase64(file) {
    return new Promise((resolve, reject) => {
      const reader = new FileReader();
      reader.readAsDataURL(file);
      reader.onload = () => resolve(reader.result);
      reader.onerror = error => reject(error);
    });
  }
和html:

 <input type="file" (change)="change()">

我为“函数”获取:意外标记。应为构造函数、方法、访问器或属性。所以我把它改成了“公共”。另外,我在getBase64前面放了一个“this”(…因此我有这个.getBase64(…在img.src=base64行中,我得到一个错误:“[ts]类型“{}”不能分配给类型“string”。”我不知道如何解决这个问题。如果我注释掉它,代码将运行,但不会输出宽度和高度
 <input type="file" (change)="change()">