web-dev-qa-db-ja.com

ASP Postmanを使用したコアWeb Apiテストファイルのアップロード

任意のファイルを取るエンドポイントを作成しました:

[HttpPost()]
public async Task<IActionResult> CreateFile(IFormFile file)

Postmanでテストすると、fileは常にnullです。

これが、私がPostmanでやっていることです。

Postman screenshot

私は何を間違えていますか?

12
Zeus82

@rmjoiaのコメントのおかげで、うまくいきました!ポストマンでやらなければならなかったことは次のとおりです。

enter image description here

22
Zeus82

ファイルをアップロードするための完全なソリューションを以下に示します。

  • このアクションは、アップロードに使用します複数のファイル

    // Of course this action exist in Microsoft docs and you can read it.
    HttpPost("UploadMultipleFiles")]
    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
    
        return Ok(new { count = files.Count, path = filePath});
    }
    

郵便配達員の写真は、複数のファイルをアップロードするためにこのエンドポイントにファイルを送信する方法を示しています。 enter image description here

  • このアクションは、アップロードに使用します単一ファイル

    [HttpPost("UploadSingleFile")]
    public async Task<IActionResult> Post(IFormFile file)
    {
    
        // Full path to file in temp location
        var filePath = Path.GetTempFileName();
    
        if (file.Length > 0)
            using (var stream = new FileStream(filePath, FileMode.Create))
                await file.CopyToAsync(stream);
    
        // Process uploaded files
    
        return Ok(new { count = 1, path = filePath});
    }
    

郵便配達員の写真は、単一のファイルをアップロードするためにこのエンドポイントにファイルを送信する方法を示しています: enter image description here

10
SLDev

あなたはそのようでなければなりません

 [HttpPost]       
   public async Task<IActionResult> UploadFile([FromForm]UploadFile updateTenantRequest)
        {
}

あなたのクラスは次のようでなければなりません:-

public class UpdateTenantRequestdto
    {


        public IFormFile TenantLogo { get; set; }
    }

その後 - enter image description here

1
MayankGaur