@Senture

Как правильно из React отправлять файлы на сервер(ASP.NET WebAPI), и как правильно их получать?

У меня есть компонента на 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 в браузере при отправке

60a51f41792f7783083509.png
-
60a51f502609b451799890.png


Но я не понимаю как эти данные получить на сервере 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. Всем большое спасибо!
  • Вопрос задан
  • 498 просмотров
Решения вопроса 1
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
https://docs.microsoft.com/ru-ru/aspnet/core/mvc/m...

Прочтите вот тут. Дойду до дома скину кусок мульти загрузки файлов. Серверную и клиентскую
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы