golang gin上传文件返回前端及中间件怎么实现-亚博电竞手机版

golang gin上传文件返回前端及中间件怎么实现

这篇文章主要介绍“golanggin上传文件返回前端及中间件怎么实现”,在日常操作中,相信很多人在golanggin上传文件返回前端及中间件怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”golanggin上传文件返回前端及中间件怎么实现”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

上传文件

packagemainimport("fmt""github.com/gin-gonic/gin")funcmain(){router:=gin.default()//给表单限制上传大小(默认32mib)//router.maxmultipartmemory=8<<20//8mibrouter.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())

单个中间件

packagemainimport("fmt""github.com/gin-gonic/gin")funcmiddel()gin.handlerfunc{returnfunc(context*gin.context){fmt.println("我在方法前1")context.next()fmt.println("我在方法后1")}}funcmain(){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

多个中间件

packagemainimport("fmt""github.com/gin-gonic/gin")funcmiddel()gin.handlerfunc{returnfunc(context*gin.context){fmt.println("我在方法前1")context.next()fmt.println("我在方法后1")}}funcmiddel2()gin.handlerfunc{returnfunc(context*gin.context){fmt.println("我在方法前2")context.next()fmt.println("我在方法后2")}}funcmain(){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

到此,关于“golanggin上传文件返回前端及中间件怎么实现”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注恰卡编程网网站,小编会继续努力为大家带来更多实用的文章!

展开全文
内容来源于互联网和用户投稿,文章中一旦含有亚博电竞手机版的联系方式务必识别真假,本站仅做信息展示不承担任何相关责任,如有侵权或涉及法律问题请联系亚博电竞手机版删除

最新文章

网站地图