<nz-upload
[nzTransformFile]="transformFile"
[nzBeforeUpload]="beforeUpload"
>
<button nz-button nzType="primary" >本地上传</button>
</nz-upload>
beforeUpload = (file: NzUploadFile, _fileList: NzUploadFile[]) => {
return new Observable((observer: Observer<boolean>) => {
const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png' || file.type === 'image/bmp';
if (!isJpgOrPng) {
this.msg.error('只允许上传图片!');
observer.complete();
return;
}
const isLt2M = file.size! / 1024 / 1024 < 2;
if (!isLt2M) {
this.msg.error('图片大小不得超过2MB!');
observer.complete();
return;
}
observer.next(isJpgOrPng && isLt2M);
observer.complete();
});
};
transformFile = (file: NzUploadFile) => {
return new Observable((observer: Observer<Blob>) => {
const reader = new FileReader();
reader.readAsDataURL(file as any);
reader.onload = () => {
const canvas = document.createElement('canvas');
const img = document.createElement('img');
img.src = reader.result as string;
this.currentImg=img.src;
this.lineAction()
};
});
};