Проблема с загрузкой файла .NET Core Web API - PullRequest
0 голосов
/ 14 июня 2019

Я пытаюсь загрузить файл (просто .jpeg изображение) и сохранить его на моем сервере. Я написал следующий код для этого:

Db context

public class ApplicationContext : DbContext
{
    private readonly string _connectionString;

    public ApplicationContext(IConfiguration configuration)
    {
        _connectionString = configuration.GetConnectionString("Recipes");
    }

    public DbSet<FileModel> Files { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseNpgsql(_connectionString);
    }
}

Модель

public class FileModel
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }
    public string Name { get; set; }
    public string Path { get; set; }
}

Метод моего контроллера для загрузки

   public async Task<IActionResult> AddFile(IFormFile uploadedFile)
    {
        string path = "";

        if (uploadedFile != null)
        {
            // путь к папке Files
            path = "/Files/" + uploadedFile.FileName;

            using (var fileStream = new FileStream(_appEnvironment.WebRootPath + path, FileMode.Create))
            {
                await uploadedFile.CopyToAsync(fileStream);
            }

            FileModel file = new FileModel { Name = uploadedFile.FileName, Path = path };
            _applicationContext.Files.Add(file);
            _applicationContext.SaveChanges();
        }

Следующий шаг, который я собираюсь сделать, это протестировать его с помощью Insomnia rest client . Я настроил все в соответствии с документацией Insomnia (для передачи заголовка multipart / form-data) и отправил запрос. Но в uploadedFile я вижу ноль.

Вот скриншот бессонницы enter image description here

и экран результата: enter image description here

Почему uploadedFile равно нулю? Где ошибка?

1 Ответ

1 голос
/ 14 июня 2019

Имя параметра в вашем клиенте image не ожидается uploadedFile определено в действии контроллера

...