ASP.NET アップロードされたファイル(IFormFile)をバイト配列で読み込む
ASP.NET
でアップロードされたファイルをバイト配列で読み込む方法を紹介します。
ASP.NET
のWebAPI
などでmultipart/form-data
のリクエストでアップロードされたファイルはIFormFile
型の変数に格納されています。
IFormFile
型のファイルをバイト配列で読み込むには以下のようにします。
public static async Task<byte[]> GetBytesAsync(IFormFile formFile)
{
using var memoryStream = new MemoryStream();
await formFile.CopyToAsync(memoryStream);
return memoryStream.ToArray();
}
使い方
byte[] content = await GetBytesAsync(request.File);
拡張メソッドとして定義
以下のように、拡張メソッドとして定義しておけば、よりわかりやすく使用できます。
public static class Extensions
{
public static async Task<byte[]> GetBytesAsync(this IFormFile formFile)
{
using var memoryStream = new MemoryStream();
await formFile.CopyToAsync(memoryStream);
return memoryStream.ToArray();
}
}
使い方
byte[] content = await request.File.GetBytesAsync();