【ASP.NET Core Web】アップロードされたファイルがZIPか判定する
2023-9-15 | .NET, ASP.NET Core Web
ASP.NET Core WebでアップロードされたファイルがZIPか判定したい!
概要
今回の記事では、ASP.NET Core WebでアップロードされたファイルがZIPか判定する手順を掲載する。
仕様書
環境
- .NET 7.0
手順書
IFormFile
で渡したファイルがZIPなのか真偽で返す例。
using Microsoft.AspNetCore.Http;
using System.IO;
public bool IsZipFile(IFormFile file)
{
const int zipHeaderSize = 4;
byte[] buffer = new byte[zipHeaderSize];
file.OpenReadStream().Read(buffer, 0, zipHeaderSize);
return buffer[0] == 0x50 && buffer[1] == 0x4B && buffer[2] == 0x03 && buffer[3] == 0x04;
}
ファイルの先頭4バイトがZIPのローカルファイルヘッダのシグネチャである`504B0304`になってるか読み取って照合してる。
まとめ(感想文)
一度に多くのファイルを処理する時にZIPファイルが使われることがあるとかないとか。