Update file_type.go

This commit is contained in:
buttercannfly 2023-09-19 18:05:46 +08:00 committed by GitHub
parent 541c35e827
commit de6a633248
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 9 deletions

View File

@ -1,26 +1,25 @@
package checker
import (
"image/jpeg"
"image/png"
"image"
_ "image/gif" // use init to support decode jpeg,jpg,png,gif
_ "image/jpeg"
_ "image/png"
"io"
"strings"
)
// IsSupportedImageFile currently answers support image type is `image/jpeg,image/jpg,image/png`
// IsSupportedImageFile currently answers support image type is `image/jpeg,image/jpg,image/png, image/gif`
func IsSupportedImageFile(file io.Reader, ext string) bool {
ext = strings.TrimPrefix(ext, ".")
var err error
switch strings.ToUpper(ext) {
case "JPEG":
_, err = jpeg.Decode(file)
case "PNG":
_, err = png.Decode(file)
case "JPG", "JPEG", "PNG", "GIF": // only allow for `image/jpeg,image/jpg,image/png, image/gif`
_, _, err = image.Decode(file)
case "ICO":
// TODO: There is currently no good Golang library to parse whether the image is in ico format.
return true
case "JPG":
return true
default:
return false
}