Blog
Blog copied to clipboard
获取图片尺寸大小问题
获取图片尺寸大小问题
场景
Golang 使用 Gin 框架,获取上传图片大小的时候,报 image: unknown format
方案
摘录部分代码如下
func uploadOpcategoryImage(c *bm.Context) {
...
file, header, err := c.Request.FormFile("file")
if err != nil {
c.JSON(nil, ecode.Error(ecode.RequestErr, err.Error()))
return
}
defer file.Close()
// 校验尺寸大小
image, _, err := image.DecodeConfig(file)
if err != nil {
c.JSON(nil, ecode.Error(ecode.RequestErr, err.Error()))
return
}
if image.Width != 128 || image.Height != 128 {
c.JSON(nil, ecode.Error(ecode.RequestErr, "图片尺寸只支持128px*128px"))
return
}
...
}
image.DecodeConfig() 函数会报 image: unknown format.
这是因为没有导入对应图片格式的包导致的,image 包本身不能识别图片格式.
在文件开头导入相应的图片格式包即可
import (
"image"
_ "image/gif"
_ "image/jpeg"
_ "image/png"
)
另外需要注意的是 c.Request.FormFile("file") 返回的是文件指针,image.DecodeConfig(file) 之后,file 的内容是被修改的了.