Angular2文件输入onchange
Angular2 file input onchange
我有输入文件(没有提交 - 典型的输入文件)。我想在选择文件时调用一些函数。
示例:
我点击 "Choose file" -> 选择文件 -> 现在系统检测到变化并调用一些函数来打印所有这些文件信息(例如图像名称)。
我不能在输入文件上使用 ngModel,对吗?怎么做?
在您的模板中使用以下内容:
<div class="modal-body">
<input type="file" (change)="fileChangeEvent($event)" placeholder="Upload file..." />
<img id="preview" src="" alt="Preview">
</div>
那么你的组件 fileChangeEvent()
as
public fileChangeEvent(fileInput: any){
if (fileInput.target.files && fileInput.target.files[0]) {
var reader = new FileReader();
reader.onload = function (e : any) {
$('#preview').attr('src', e.target.result);
}
reader.readAsDataURL(fileInput.target.files[0]);
}
}
所有与您的文件相关的信息都将用于控制台....
Double H 的功能对我不起作用,直到我添加了 onclick="this.value = null",如下所示:
这是我对 Double H 的回答的修正,不依赖 jQuery 并阻止 webpack 在 e.target.result.
上出错
<img [src]="imageSrc" alt="" />
<input type="file" capture="camera" accept="image/*" (change)="displayPhoto($event)">
打字稿代码
displayPhoto(fileInput) {
if (fileInput.target.files && fileInput.target.files[0]) {
const reader = new FileReader();
reader.onload = ((e) => {
this.imageSrc = e.target['result'];
});
reader.readAsDataURL(fileInput.target.files[0]);
}
}
我有输入文件(没有提交 - 典型的输入文件)。我想在选择文件时调用一些函数。
示例: 我点击 "Choose file" -> 选择文件 -> 现在系统检测到变化并调用一些函数来打印所有这些文件信息(例如图像名称)。
我不能在输入文件上使用 ngModel,对吗?怎么做?
在您的模板中使用以下内容:
<div class="modal-body">
<input type="file" (change)="fileChangeEvent($event)" placeholder="Upload file..." />
<img id="preview" src="" alt="Preview">
</div>
那么你的组件 fileChangeEvent()
as
public fileChangeEvent(fileInput: any){
if (fileInput.target.files && fileInput.target.files[0]) {
var reader = new FileReader();
reader.onload = function (e : any) {
$('#preview').attr('src', e.target.result);
}
reader.readAsDataURL(fileInput.target.files[0]);
}
}
所有与您的文件相关的信息都将用于控制台....
Double H 的功能对我不起作用,直到我添加了 onclick="this.value = null",如下所示:
这是我对 Double H 的回答的修正,不依赖 jQuery 并阻止 webpack 在 e.target.result.
上出错<img [src]="imageSrc" alt="" />
<input type="file" capture="camera" accept="image/*" (change)="displayPhoto($event)">
打字稿代码
displayPhoto(fileInput) {
if (fileInput.target.files && fileInput.target.files[0]) {
const reader = new FileReader();
reader.onload = ((e) => {
this.imageSrc = e.target['result'];
});
reader.readAsDataURL(fileInput.target.files[0]);
}
}