Передача изображений между Angular и Web API Core

Я пытался сделать передачу изображения между Angular и Web API-ядром и наоборот от 3-х дней, и я не могу этого сделать. Я много искал в интернете, но я не нашел ни одного примера для ядра web api.

Я буду очень благодарен, если кто-нибудь предоставит мне ссылку на документацию / примеры или некоторые учебные пособия.

Сейчас я делаю передачу данных между Angular и API через объекты Json. Как я могу конвертировать изображения в JSON для передачи?

Извините, если это основной вопрос, так как я новичок в этом.

1 ответ

Почему вы конвертируете изображение в формат JSON?

Вы передаете свой файл непосредственно в сервис. Это идея. Контроллер получает файл, отправленный POST

BACKEND

    using System.Net.Http.Headers;

                [HttpPost]
            public ActionResult UploadFile()
            {
                try
                {
                    var file = Request.Form.Files[0];

                    if (file.Length > 0)
                    {
                        string fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName;
                        string fullPath = Path.Combine(@"C:\wwwroot\upload", fileName);
                        using (var stream = new FileStream(fullPath, FileMode.Create))
                        {
                            file.CopyTo(stream);
                        }
                    }
                    return Json("OK");
                }
                catch (System.Exception ex)
                {
                    return Json("Failed");
                }
            }

ВНЕШНИЙ ИНТЕРФЕЙС

export class UploadComponent {
  constructor(private http: HttpClient) { }

  upload(files) {
    if (files.length === 0)
      return;

    const formData = new FormData();

    for (let file of files)
      formData.append(file.name, file);

    const uploadReq = new HttpRequest('POST', `api/uploadFile`, formData);

    this.http.request(uploadReq).subscribe(event => {
      if (event.type === HttpEventType.Response)
        //DONE
    });
  }
}

HTML

<input #file type="file" (change)="upload(file.files)" />
Другие вопросы по тегам