[Go]GO语言实战项目-gin框架上传图片文件

在做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,},})
    }
}
    //上传文件
    engine.POST(/uploadimg",controller.UploadImg)

案例可以直接点击本页面的,在线交流按钮,体验上传图片部分的功能

 

 

相关文章

什么是Go的接口? 接口可以说是一种类型,可以粗略的理解为他...
1、Golang指针 在介绍Golang指针隐式间接引用前,先简单说下...
1、概述 1.1 Protocol buffers定义 Protocol buffe...
判断文件是否存在,需要用到"os"包中的两个函数: os.Stat(...
1、编译环境 OS :Loongnix-Server Linux release 8.3 CPU指...
1、概述 Golang是一种强类型语言,虽然在代码中经常看到i:=1...