У меня есть компонента на React которая отправляет изображение на сервер:
spoiler
import React, { Component } from 'react';
import axios from 'axios';
class TestUploadFIle extends Component {
constructor() {
super();
this.state = {
images: [],
};
}
onImageChange = event => {
console.log(event.target.files);
this.setState({
images: event.target.files,
});
};
onSubmit = e => {
e.preventDefault();
const formData = new FormData();
Array.from(this.state.images).forEach(image => {
formData.append('files', image);
});
axios
.post(`https://localhost:5001/api/realty`, formData, {
headers: { 'Content-Type': 'multipart/form-data' },
})
.then(res => {
console.log(res);
})
.catch(err => {
console.log(err);
});
};
render() {
return (
<div>
<form onSubmit={this.onSubmit}>
<input
type="file"
name="files"
onChange={this.onImageChange}
alt="image"
/>
<br />
<button type="submit">Send</button>
</form>
</div>
);
}
}
export default TestUploadFIle;
Код взят из интернета, для ознакомления как это вообще работает.
Вот что показывает Network в браузере при отправке
-
Но я не понимаю как эти данные получить на сервере Web API (ASP), не пойму какой тип принимать, вроде как для этого есть IFromFile
[HttpPost]
public async Task<IActionResult> Create([FromForm] IFormFile dto)
{
await _orchestrator.Create(dto, await FindAccount(_userId));
return Ok();
}
Только вот какой я тип только не пробовал, всегда приходит null.
Я понимаю, вопрос максимально глупый, но я на нем застрял...
Другий данные(string, int, guid...) отправляю\получаю без проблем.
Как с этим разберусь, нужно будет сделать отправку строк + несколько изображений, как это правильнее делать, что использовать?
Подскажите пожалуйста в какую сторону копать?
P.S. Всем большое спасибо!