golang Gin上传文件返回前端及中间件怎么实现
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要介绍"golang Gin上传文件返回前端及中间件怎么实现",在日常操作中,相信很多人在golang Gin上传文件返回前端及中间件怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好
千家信息网最后更新 2025年01月19日golang Gin上传文件返回前端及中间件怎么实现
这篇文章主要介绍"golang Gin上传文件返回前端及中间件怎么实现",在日常操作中,相信很多人在golang Gin上传文件返回前端及中间件怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"golang Gin上传文件返回前端及中间件怎么实现"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
上传文件
package mainimport ( "fmt" "github.com/gin-gonic/gin")func main() { router := gin.Default() // 给表单限制上传大小 (默认 32 MiB) // router.MaxMultipartMemory = 8 << 20 // 8 MiB router.POST("/upload", func(c *gin.Context) { // 单文件 file, _ := c.FormFile("file") // 上传文件到指定的路径 c.SaveUploadedFile(file, "./"+file.Filename) //c.String(http.StatusOK, fmt.Sprintf("'%s' uploaded!", file.Filename)) c.Writer.Header().Add("Content-Disposition",fmt.Sprintf("attachment;filename=%s",file.Filename)) c.File("./"+file.Filename) }) router.Run(":8080")}
文件返回给前端
c.Writer.Header().Add("Content-Disposition",fmt.Sprintf("attachment;filename=%s",file.Filename))c.File("./"+file.Filename) //返回文件路径,自动调用http.ServeFile方法
中间件
中间件调用两种方式
方式一:在Use中连续调用
v1 := r.Group("v1").Use(middel())
v1 := r.Group("v1").Use(middel(),middel2())
方式二:Use链式调用
v1 := r.Group("v1").Use(middel()).Use(middel2())
单个中间件
package mainimport ( "fmt" "github.com/gin-gonic/gin")func middel()gin.HandlerFunc{ return func(context *gin.Context) { fmt.Println("我在方法前1") context.Next() fmt.Println("我在方法后1") }}func main() { r := gin.Default() v1 := r.Group("v1").Use(middel()) v1.GET("/test", func(c *gin.Context) { fmt.Println("我在方法内部") c.JSON(200, gin.H{ "msg": true, }) }) r.Run(":8080")}
结果
我在方法前1
我在方法内部
我在方法后1
多个中间件
package mainimport ( "fmt" "github.com/gin-gonic/gin")func middel()gin.HandlerFunc{ return func(context *gin.Context) { fmt.Println("我在方法前1") context.Next() fmt.Println("我在方法后1") }}func middel2()gin.HandlerFunc{ return func(context *gin.Context) { fmt.Println("我在方法前2") context.Next() fmt.Println("我在方法后2") }}func main() { r := gin.Default() v1 := r.Group("v1").Use(middel(),middel2()) v1.GET("/test", func(c *gin.Context) { fmt.Println("我在方法内部") c.JSON(200, gin.H{ "msg": true, }) }) r.Run(":8080")}//像一个洋葱
结果
我在方法前1
我在方法前2
我在方法内部
我在方法后2
我在方法后1
到此,关于"golang Gin上传文件返回前端及中间件怎么实现"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
方法
文件
中间件
前端
学习
方式
更多
结果
路径
帮助
实用
接下来
单个
多个
大小
文章
洋葱
理论
知识
篇文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
李佳网络安全
中国大学生网络安全排名
临沂微信公众号软件开发
列举常用生物信息数据库
软件开发与管理pdf
数据库安全设置与保护实验
精益创业法管理软件开发项目
串口服务器数据在哪
服务器socket连接失败
房山区网络技术服务概况
学前教育软件开发
数据库技术及应用实验三
江西企业中台数据库
apex显示服务器未响应
广州调度服务器生产
acc数据库的文件扩展名是啥
信息技术网络技术公开课
网络技术化管理的特点
国开网络安全评估形考答案
阿里云华为云数据库同步
铜山市网络安全周
海康存储磁盘阵列服务器客服电话
西安软件开发公司有多少
岑溪市网络技术培训机构
hg 服务器
北京安卓软件开发收费标准
大学生网络安全教育调研
上海中国移动网络技术有限公司
山东合同管理软件开发平台
泊翔计算机软件开发