[Go]GO语言实战项目-gin框架上传图片文件
2023-02-18 15:41:17 时间
在做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": 400, "msg": "上传失败!", }) return } else { fileExt:=strings.ToLower(path.Ext(f.Filename)) if fileExt!=".png"&&fileExt!=".jpg"&&fileExt!=".gif"&&fileExt!=".jpeg"{ c.JSON(200, gin.H{ "code": 400, "msg": "上传失败!只允许png,jpg,gif,jpeg文件", }) return } fileName:=tools.Md5(fmt.Sprintf("%s%s",f.Filename,time.Now().String())) fildDir:=fmt.Sprintf("%s%d%s/",config.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",fildDir,fileName,fileExt) c.SaveUploadedFile(f, filepath) c.JSON(200, gin.H{ "code": 200, "msg": "上传成功!", "result":gin.H{ "path":filepath, }, }) } }
//上传文件 engine.POST("/uploadimg",controller.UploadImg)
案例可以直接点击本页面的,在线交流按钮,体验上传图片部分的功能
相关文章
- VS Code使用Git可视化管理源代码详细教程
- Visual Studio使用Git忽略不想上传到远程仓库的文件
- 使用git处理github中提交有冲突的pull request
- Linux CentOS7部署ASP.NET Core应用程序,并配置Nginx反向代理服务器和Supervisor守护服务
- Linux CentOS上安装 MySQL 8.0.16
- Linux系统彻底卸载MySQL数据库
- Git分布式版本控制器常用命令和使用
- Linux常用基本命令
- Linux安装Nginx二-基于源码编译安装
- Linux安装Nginx1-基于yum安装
- git commit 代码提交规范
- git status 查看状态文件名乱码
- MySQL server has gone away
- PHP 中的 final 关键字
- PHP 命令行指令
- PHP 代码复用机制 trait
- git stash 命令详解(保存开发进度)
- .git 目录结构内容解析
- linux 命令之查看文件内容
- git fetch 命令详解