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();