我有一个角8程序,我想编辑一个项目后,点击编辑和价值显示在各自的形式。所以为名称价值将显示在名称文本输入。年龄将显示在年龄文本输入等问题是,当我点击编辑,图像输入文件不显示或保存图像。现在我如何在单击编辑时默认显示该图像,类似于文本文件?我知道文本输入使用[(ngModel)] = "value"/>
,但这似乎对输入文件不起作用。下面是我的图像输入文件和相应的ts文件的代码。
超文本标记语言
<div class="form-group">
<input formControlName="ProductFile" #file type="file" name="photo" ng2FileSelect [uploader]="uploader" (change)="previewImage(file.files)" />
<div [hidden]="!imgURL">
<img [src]="imgURL || '//:0'" height="200" >
</div>
</div>
编辑文件.ts
previewImage(files, product) {
if (files.length === 0)
return;
var mimeType = files[0].type;
if (mimeType.match(/image\/*/) == null) {
return alert('Only image files!');
}
var reader = new FileReader();
this.imagePath = files;
reader.readAsDataURL(files[0]);
reader.onload = (_event) => {
//upload percentage
this.uploadPercent = new Observable((observer) => {
Math.round((_event.loaded / _event.total) * 100);
});
this.imgURL = reader.result;
}
}
2条答案
按热度按时间z8dt9xmd1#
previewImage
函数接收到两个参数,但您似乎只发送了一个。change()
lifehook将不会有帮助。它只在选择新文件之后触发。imageUrl = 'default-path/file.ext'
byte[]
,然后您可以将原始字节传入src:此端点将为您提供显示文件所需的一切:
一个三个一个x一个四个一个x一个五个一个x一个六个一个
kmbjn2e32#
现在,当我点击类似于文本文件的编辑按钮时,如何默认显示这个图像呢?[...]这似乎对输入文件不起作用。
我尝试在StackBlitz项目中重现您的问题(参见link)。
在不过多修改示例代码的情况下,下面是我如何从输入文件中获取要显示的图像:
div
HTML元素中提供[formGroup]
指令。form
窗体组,其中包含ProductFile
窗体控件。希望这个有用。