ASP.NET Core WEB API

【 ASP.NET Core WebAPI 】ファイルアップロード方法 FromForm IFormFile

IFormFile クラス、FromForm 属性などを使用して、
ASP.NET Core(.NET 6)のWebAPImultipart/form-dataのリクエストでファイルアップロードを受け取る方法、FromForm 属性、IFormFile クラスについて解説します。

ASP.NET WebAPI ファイルアップロード方法 FromForm IFormFile
ASP.NET WebAPI

IFormFile クラス

まずはじめに、リクエストから受け取るためのモデルが必要になります。

そのとき作成するモデル内に、IFormFile クラスのプロパティを実装します。

以下が実装例になります。

public class UploadFile
    {
        [DataMember(Name = "file")]
        public IFormFile File { get; set; }
    }

さらに、IFormFile クラスには以下のようなプロパティやメソッドがあります。

これらのプロパティとメソッドを使用することで、アップロードされたファイルに関する情報を取得し、
必要に応じて処理することができます。

public IFormFile File;

// アップロードされたファイルの名前を取得します。
File.FileName;

// アップロードされたファイルのMIMEタイプを取得します。
File.ContentType;

// アップロードされたファイルのサイズをバイト単位で取得します。
File.Length;

// アップロードされたファイルを読み取るためのストリームを開きます。
File.OpenReadStream;

FromForm

次にファイルのアップロードのリクエストを受け取るアクションメソッドを定義する必要があります。

その際に、アップロードされたファイルを受け取るためにアクションメソッドの引数に上記で定義したIFormFile クラスのモデルを設定します。

また、引数に設定したIFormFile クラスのモデルには、FromForm 属性も設定する必要があります。

FromForm 属性とは、HTTPリクエストからフォームデータを取得するために使用されます。
この属性を使用することで、HTTPリクエストのコンテンツからフォームデータを自動的に抽出し、アクションメソッドの引数にバインドすることができます。

FromForm 属性を使用することで、手動でフォームデータを抽出する必要がなくなり、コードの簡潔化ができます。

ちなみに、FromBodyFromQueryなど、他の属性もあり、どのようなものをリクエストで受け取るのかによって用途が変わります。

以下が実装の例になります。

[HttpPost]
public IActionResult UploadFile([FromForm] UploadFile uploadFile)
{
    if(uploadFile.File != null && uploadFile.File.Length > 0)
    {
        var reader = new StreamReader(upload.File.OpenReadStream());
        var content = reader.ReadToEnd();
    }
}

ASP.NET おすすめ入門講座

3つのWebアプリケーションの開発を通して、ASP.NETについて基礎から学べるおすすめの入門講座がこちら☟

【入門者向け】ASP.NET MVCでWebアプリ開発のノウハウを学ぼう!

icon

おすすめ記事はコチラ

スマレジ テックファーム 1

スマレジ テックファーム で Webエンジニアとして勤めている tomoです。 今回は株式会社スマレジや私が所属している 「 スマレジ テックファーム 」についてPRしていきたいと思います。 スマレジ ...

2

FromBody 属性を使用して、 ASP.NET Core(.NET 6)のWebAPIでBodyパラメータのJSONを受け取る方法を解説します。 FromBody 属性 POSTやGETで呼び出さ ...

PC picture 3

ASP.NET Core(.NET 6)でCookie認証のタイムアウトを設定する方法を解説します。 Cookieの有効期限について Cookieには通常はタイムアウト(有効期限)を設定します。 基本 ...

4

ASP.NET Core(.NET 6)でクロスオリジンリクエスト ( CORS )を設定する方法を解説します。 簡単に クロスオリジンリクエスト ( CORS )とは何かについても少し解説したいと思 ...

-ASP.NET Core, WEB API
-, ,