#angular #file-upload #primeng
Вопрос:
У меня есть угловая форма, поддерживаемая фреймворком пользовательского интерфейса PrimeNG. Я удалил кнопку загрузки, потому что мне нужна вся логика загрузки, которая срабатывает только при нажатии кнопки «Прогресс загрузки». Как я все еще могу ссылаться на файловую переменную? При срабатывании onSubmitProgress() имя файла остается пустым
onAttachmentSelected(event: any) {
this.uploadedFiles = event.files;
console.log('selected attachment file:', this.uploadedFiles[0].name)
}
onAttachmentHandled(event) {
console.log('handing the file ')
}
onSubmitProgress() {
// upload file
console.log('submit attachment file:', this.uploadedFiles)
}
HTML
<div class="p-field p-col-12 p-md-3">
<p-fileUpload name="x" [customUpload]="true"
[showUploadButton]="false" (onSelect)="onAttachmentSelected($event)" (uploadHandler)="onAttachmentHandled($event)"
[maxFileSize]="5000000"></p-fileUpload>
</div>
<div class="p-field p-col-12 p-md-3">
<button pButton label="Update Progress" (click)="onSubmitProgress()"></button>
</div>
Ответ №1:
HTML
<p-fileUpload name="uploadAvatar"
[customUpload]="true"
(uploadHandler)="onFileUploadClicked($event)"
(onSelect)="onSelectFile($event)"
accept="image/*"
[maxFileSize]="500000">
</p-fileUpload>
тс
onFileUploadClicked(event: {files: Blob[]}) {
doSomthingWithFile(event.files[0]);
}
onSelectFile(event: {files: FormData[]}) {
this.uploadedFiles = event.files;
}
Комментарии:
1. я не совсем понимаю «uploadHandler», так как моя загрузка запускается только при нажатии кнопки «Отправить». Я обновил свой вопрос, после ссылки на приведенный выше код он все еще не работает
2. Вот почему я также поставил Select (чтобы использовать внешнюю кнопку, если хотите). Вы можете сохранить файлы в своем компоненте, когда они выбраны и когда
submit
они у вас уже естьthis.uploadedFiles
.