【发布时间】:2017-07-17 19:55:12
【问题描述】:
我想从模态视图中的 html 输入标记中获取文件名并使用 Angular2 保存它。有人可以帮我吗?
【问题讨论】:
标签: html angular angular2-template html-input
我想从模态视图中的 html 输入标记中获取文件名并使用 Angular2 保存它。有人可以帮我吗?
【问题讨论】:
标签: html angular angular2-template html-input
接下来你可以做:
HTML:
<input type="file" (change)="fileEvent($event)" />
打字稿:
fileEvent(fileInput: Event){
let file = fileInput.target.files[0];
let fileName = file.name;
}
【讨论】:
Property 'files' does not exist on type 'EventTarget'的人,请查看stackoverflow.com/a/44932086/4281182
HTML
<input type="file" (change)="onFileChange($event)">
脚本
onFileChange(event) {
let files = event.target.files[0].name;
}
【讨论】:
您可以尝试更优雅的选择:
HTML:
<input #file type="file" (change)="updateFile(file)">
脚本:
updateFile(file: HTMLInputElement) {
let name = file.value;
}
【讨论】:
HTML
<button (click)="imgFileInput.click()">Add</button>
{{ imgFileInput?.files[0]?.name }}
<input hidden type="file" #imgFileInput (change)="uploadSingle($event)"/>
组件
uploadSingle(event) {
const fileName = event.target.files[0].name;
}
【讨论】:
我的作品是这样的:
HTML
<input type="file" (change)="detectFiles($event)">
<div class="output">Seleccionado: {{ fileName }} </div>
TS
selectedFiles: FileList;
fileName: string;
detectFiles(event) {
this.selectedFiles = event.target.files;
this.fileName = this.selectedFiles[0].name;
console.log('selectedFiles: ' + this.fileName );
}
【讨论】:
@Selçuk Cihan 建议的此链接的https://stackoverflow.com/a/44932086/4281182 解决方案没有帮助 所以我的解决方法是通过这样做使 fileInput 参数类型为“any”
fileEvent(fileInput){
let file = fileInput.target.files[0];
let fileName = file.name;
}
所以在 TS 运行时这是一个纯 JS 代码
无论如何感谢这个伟大的答案,它为我节省了很多时间
【讨论】: