我想首先选择文件,然后通过另一个按钮而不是组件自己的Upload
按钮开始上传这些文件。
我该怎么做?
我试过的示例代码:
<button pButton type="button" label="Start Upload"
(click)="startUpload()"></button>
<p-fileUpload #fileInput name="fileIcon"
url="rest/batch/file/multimedia/"></p-fileUpload>
@ViewChild('fileInput') fileInput:ElementRef;
constructor( private renderer: Renderer ) { }
startUpload(){
// this.fileInput.upload(); -> doesn't compile, undefined
// this.fileInput.nativeElement.upload(); -> this.fileInput.nativeElement is undefined
?????????????????
}
答案 0 :(得分:15)
适用于我的示例代码
import {FileUpload} from 'primeng/primeng';
@Component({
...
})
export class AppComponent {
@ViewChild('fileInput') fileInput: FileUpload;
startUpload(){
this.fileInput.upload();
}
}
<强> Plunker Example 强>
答案 1 :(得分:0)
如果可以,您应该使用内置按钮。要访问类变量和方法,可以使用ViewChild。你应该:
使用FileUpload类型向component.ts添加新变量(现在您可以访问变量和方法 - 在VS Code中,您可以单击右键并转到定义以查看所有内容)
@ViewChild('fileInput') fileInput:FileUpload;
// remember to import FileUpload and of course FileUploadModule
onSelect() {
// here custom validation for file (for example check image's dimension)
}
customUpload(event) {
// here you can set your custom upload
}