Если для отправки этого запроса вы используете только HTML, то он без проблем. Но так как вы хотите, чтобы он проходил через код вашего компонента, вам придется привязаться к событию ngSubmit
в form
. Это вызовет функцию в вашем классе TypeScript. В этом например. это onSubmit
.
<form (ngSubmit)="onSubmit()">
<input type="hidden" name="size" value="1000000">
<div>
<input type="file" name="image">
</div>
<div>
<input id="textauthor" name="name" placeholder="Name"></input>
<button type="submit" name="upload">POST</button>
</div>
</form>
А вот машинопись:
onSubmit() {
const payload = new FormData();
payload.append('name', this.author);
payload.append('image', this.selectedFile, this.selectedFile.name);
this.http
.post(`request-url`,
payload, {
headers: {
'Content-Type': 'multipart/form-data'
}
}
).subscribe((data: any) => {
this.resData = data;
console.log(this.resData);
});
}
UPDATE:
Сначала было несколько проблем с вашим кодом, которые я исправил в обновленном стеке.
URL-адрес API, который вы указали, размещен на HTTP, а проект размещен на HTTPS. Таким образом, браузер заблокирует запрос API, выдав ошибку смешанного содержимого.
Если я попытаюсь изменить его с HTTP на HTTPS, он выдаст мне ошибку CORS, что означает, что вам придется добавить в белый список свой домен на этом API, чтобы он работал.
Вот Обновленный StackBlitz .