【ASP.NET Core Web】アップロードされたファイルがZIPか判定する

ネコニウム研究所

PCを利用したモノづくりに関連する情報や超個人的なナレッジを掲載するブログ

【ASP.NET Core Web】アップロードされたファイルがZIPか判定する

2023-9-15 | ,

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ファイルが使われることがあるとかないとか。