«HttpPostedFileBase» в Asp.Net Core 2.0 - PullRequest
0 голосов
/ 25 июня 2018

Я недавно работаю над приложением ReactJS, которое вызывает API (разработанное с .NET Core 2.0).

Мой вопрос заключается в том, как использовать HttpPostedFileBase в API .NET Core 2.0 для получения содержимого файла и сохранения его в базе данных.

Ответы [ 2 ]

0 голосов
/ 25 июня 2018

HttpPostedFileBase не существует в ASP.NET Core.Вместо этого вы должны использовать IFormFile сейчас.Однако это работает только тогда, когда вы отправляете запрос как multipart/form-data, что, скорее всего, не выполняется, если вы работаете с клиентской средой, такой как React.Если вы публикуете JSON, вы должны установить элемент JSON, который соответствует вашему свойству file с файлом, закодированным в виде строки Base64.На стороне сервера, вы должны привязать к byte[].

0 голосов
/ 25 июня 2018

У вас нет HttpPostedFileBase в ASP.NET Core 2.0, но вы можете использовать IFormFile.

[HttpPost("UploadFiles")]
public async Task<IActionResult> Post(List<IFormFile> files)
{
    long size = files.Sum(f => f.Length);

    // full path to file in temp location
    var filePath = Path.GetTempFileName();

    foreach (var formFile in files)
    {
        if (formFile.Length > 0)
        {
            using (var stream = new FileStream(filePath, FileMode.Create))
            {
                await formFile.CopyToAsync(stream);
            }
        }
    }

    // process uploaded files
    // Don't rely on or trust the FileName property without validation.

    return Ok(new { count = files.Count, size, filePath});
}

Подробнее здесь: https://docs.microsoft.com/en-us/aspnet/core/mvc/models/file-uploads?view=aspnetcore-2.1

IFormFileнаходится в следующем пространстве имен Microsoft.AspNetCore.Http.

...