В нашем Angular-проекте у нас есть форма, содержащая поля формы и PrimeNG FileUpload, и мы попытались отправить данные формы с выбранными файлами.
Мы изучили документацию и множество примеров в Интернете, но ни один из них не отвечает нашим требованиям (отправка формы и файлов с помощью кнопки «Сохранить», а не кнопки «Автоматическая загрузка» или «Загрузка файла»).
Мы попробовали следующий подход, добавив каждое свойство модели к файлам в запросе на загрузку файла, но я думаю, что должен быть более разумный способ, добавив файлы к свойствам модели в методе Save (в файле .ts).
Html
<p-fileUpload name="files" url="/MyController/Save"
(onBeforeSend)="onBeforeSendFile($event)"
(onUpload)="onUploadFile($event)"
(onError)="onErrorFile($event)"
(onBeforeUpload)="onBeforeUploadFoto($event)"
multiple="multiple"
chooseLabel="Select"
uploadLabel="Load"
cancelLabel="Cancel">
</p-fileUpload>
.ts:
//code omitted fo brevity
//at here we append model properties to the array in file upload request:
onBeforeUploadFoto(event: any) {
event.formData.append('id', this.entityId);
event.formData.append('name', this.entityName);
}