Введение
Итак, у меня есть API, который будет загружать файл в Azure со следующей подписью:
public async Task<IActionResult> Post([FromForm]IEnumerable<IFormFile> files)
Этот API был построен и протестирован с Postman, и он прекрасно работает со следующими параметрами:
Но когда я пытаюсь вызвать его в своем приложении реакции с помощью jJuery AJAX, сгенерированного Postman или axios, файловая переменная IFormFile будет иметь значение null.
handleFileChange = async (event) => {
let formData = new FormData();
let files = event.target.files[0];
formData.append('file', logo); // Can put "files" here or the imported picture "logo"
console.log("Form Data:", formData.get("files"));
await axios.post('api/files/uploadfiles', formData,{
'content-type': "multipart/form-data",
'Content-Type': "multipart/form-data",
})
.then(response => response.data)
.then(data => console.log("File Upload Response:" , data));
}
API Запрос на получение .NET Core с помощью axios / ajax
API Запрос, который получает .NET Core с почтальоном
Здесь вы заметите, что основным отличием является то, что у Почтальона есть файл под файлами, в то время как запрос axios, кажется, ссылается на него только в «Представлении результатов», но ничего не имеет в файлах. Я добавляю правильный элемент в форму? Я пробовал это с импортированным изображением, а также с динамическим из следующего поля ввода:
<FormGroup id = 'file-form'>
<Label for="file">Attach Files:</Label>
<Input type="file" name="files" id="File" onChange={this.handleFileChange}/>
</FormGroup>
но не повезло. Любая помощь будет чрезвычайно
оценен !!
Обновление # 1
После просмотра некоторой документации по Microsoft я обнаружил оговорку в документах Microsoft, в которой говорится, что для формы multict / form-data используется энтип формы. Я попытался это безрезультатно.