上载文件.NET Core Web API的问题

时间:2019-06-14 13:02:12

标签: .net-core asp.net-core-webapi insomnia

我正在尝试上传文件(只是.jpeg图像)并将其保存在我的服务器上。我为此编写了以下代码:

Db上下文

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中,我看到了null。

这是失眠的屏幕截图 enter image description here

结果屏幕: enter image description here

为什么uploadedFile为null?错误在哪里?

1 个答案:

答案 0 :(得分:1)

您的客户端中的参数名称image不是控制器操作中定义的uploadedFile