Я использую React и Axios для отправки formData во внутренний API .NET.
API ожидает такие данные:
[HttpPost("upload")]
public virtual async Task<IActionResult> PostMulti(Int64 parentId, ICollection<IFormFile> fileData)
{
foreach (var file in fileData) {
await SaveFile(file, parent);
}
return Created("", Map(Repository.Get(parentId)));
}
Когда я прохожу через отладчик,значение для fileData всегда равно 0.
Вот как я отправляю его с помощью Axios:
const formData = new FormData();
formData.append('image', this.state.file);
console.log("this.state.file = ", this.state.file);
console.log("formData = ", formData);
axios({
url: `/api/gameMethods/playerStates/${this.props.playerId}/files/upload`,
method: 'POST',
data: formData,
headers: {
Accept: 'application/json',
'Content-Type': 'multipart/form-data'
}
})
.then((response) => {
//handle success
console.log('response -- then: ', response);
this.setState({
file: this.state.file
});
})
.catch((response) => {
//handle error
console.log('response -- catch: ', response);
});
Я использую console.log для отладки.Он показывает мне объект файла, когда я записываю его (имя, размер и т. Д.).
Он также запускается в обработчике метода «.then» и показывает следующее:
"response - then: data: Array (0), status: 201, statusText:" Created ""
Итак, я понятия не имею, почему он ничего не отправляет в API, и я не понимаюдействительно не знаю, что происходит или как решить эту проблему.
Любая помощь будет принята с благодарностью.
Спасибо!