Angular 使用ng2文件上载获取图像的宽度和高度
我想使用ng2文件上传和Angular 6获取并检查上传图像的宽度和高度 到目前为止,我的代码是: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 = {
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()">