Sru*_*thi 2 file-upload angular
如何验证上传图像的尺寸。上传图像的尺寸应为 100 x 100。
上传.ts
onFileChange(event) {
let reader = new FileReader();
if (event.target.files && event.target.files.length > 0) {
let file = event.target.files[0];
reader.readAsDataURL(file);
reader.onload = () => {
this.imagePreview = reader.result;
this.employee.photo = reader.result.split(",")[1];
};
}
}
Run Code Online (Sandbox Code Playgroud)
上传.html
<div class="row">
<div class="col-md-5">
<input type="file" id="avatar"
(change)="onFileChange($event)" #fileInput name="photo">
<p style="color: red">photo should be 100 x 100 size</p>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
小智 5
这个答案工作正常 ,但有时它返回 0 高度和宽度,这是因为图像未加载。我通过简单地使用 setTimeout 解决了这个问题-
let reader = new FileReader();
if (event.target.files && event.target.files.length > 0) {
let file = event.target.files[0];
let img = new Image();
img.src = window.URL.createObjectURL( file );
reader.readAsDataURL(file);
reader.onload = () => {
setTimeout(() => {
const width = img.naturalWidth;
const height = img.naturalHeight;
window.URL.revokeObjectURL( img.src );
console.log(width + '*' + height);
if ( width !== 64 && height !== 64 ) {
alert('photo should be 64 x 64 size');
form.reset();
} else {
this.imgURL = reader.result;
}
}, 2000);
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7288 次 |
| 最近记录: |