Go言語で画像ファイルか確認してみる - Qiita
Go言語で書かれたサーバーサイドでアップロードされたファイルが画像ファイルか確認する必要があったため今後の備忘録として記載します。
https://qiita.com/tebakane/items/b7a47379659d42364c8d
実は Go にはそれ専用の関数が用意されています。
http package - net/http - Go Packages
Package http provides HTTP client and server implementations. Get, Head, Post, and PostFo...
https://pkg.go.dev/net/http#DetectContentType
バイト列を指定して以下の様に呼び出すだけです。
ct := http.DetectContentType(b)
if strings.HasPrefix(ct, "image/") {
// 画像ファイル
}
簡単ですね。image.Decode を使い画像を一定のサイズにリサイズしてディスクに保存するといったケースであれば引用元の方法でも良いですが、そうでないならば画像のマジック部分だけで判定できるの DetectContentType を使った方が良いでしょう。