在做gofly客服的上传图片部分时,需要在gin框架中实现上传图片,并且限制文件的后缀
上传文件在gin中比较简单,就是在http处理函数里面调用c.SaveUploadedFile()就可以了
需要实现限制文件后缀,自动创建按照月份的上传目录,生成新的文件名字避免冲突被覆盖
完整代码如下,上传目录为static/upload/2020August/xxxxxxx.xxx
func UploadImg(c *gin.Context){ config:=config.CreateConfig() f,err := c.FormFile("imgfile") if err != nil { c.JSON(200,gin.H{ code": 400msg": 上传失败!return } else { fileExt:=strings.ToLower(path.Ext(f.Filename)) if fileExt!=.png"&&fileExt!=.jpg.gif.jpeg{ c.JSON(上传失败!只允许png,jpg,gif,jpeg文件 } fileName:=tools.Md5(fmt.Sprintf(%s%sNow().String())) fildDir:=fmt.Sprintf(%s%d%s/fig.Upload,time.Now().Year(),time.Now().Month().String()) isExist,_:=tools.IsFileExist(fildDir) if !isExist{ os.Mkdir(fildDir,os.ModePerm) } filepath:=fmt.Sprintf(%s%s%s上传成功!result:gin.H{ path:filepath,},}) } }
案例可以直接点击本页面的,在线交流按钮,体验上传图片部分的功能