go gin实现上传文件功能
要使用go gin实现上传文件功能,可以按照以下步骤进行操作:
- 在main.go文件中导入gin和相关的中间件和包:
import (
"github.com/gin-gonic/gin"
"github.com/gin-contrib/static"
"github.com/gin-contrib/cors"
"github.com/gin-contrib/sessions"
"github.com/gin-contrib/sessions/cookie"
"github.com/gin-contrib/pprof"
"github.com/gin-gonic/contrib/ginrus"
"github.com/sirupsen/logrus"
"github.com/pkg/errors"
"net/http"
"os"
)
- 初始化gin
func newEngine() *gin.Engine {
r := gin.New()
// 设置日志格式
logger := logrus.New()
logger.Formatter = &logrus.JSONFormatter{}
// 设置日志中间件
r.Use(ginrus.Ginrus(logger, time.RFC3339, true))
// 设置静态文件目录
r.Use(static.Serve("/", static.LocalFile("./public", true)))
// 设置跨域中间件
r.Use(cors.Default())
// 设置session中间件
store := cookie.NewStore([]byte(os.Getenv("SESSION_SECRET")))
r.Use(sessions.Sessions("session", store))
// 设置pprof中间件
pprof.Register(r)
return r
}
- 创建路由和处理函数
func main() {
r := newEngine()
// 上传文件
r.POST("/upload", func(c *gin.Context) {
file, _ := c.FormFile("file")
err := c.SaveUploadedFile(file, "./"+file.Filename)
if err != nil {
c.JSON(http.StatusBadRequest, gin.H{
"message": errors.Wrap(err, "上传文件失败").Error(),
})
return
}
c.JSON(http.StatusOK, gin.H{
"message": "上传文件成功",
})
})
r.Run(":8080")
}
- 测试上传文件功能
使用Postman或其他HTTP客户端向http://127.0.0.1:8080/upload发送POST请求,选择一个文件并上传即可。上传成功后,会返回一个JSON格式的响应,消息为“上传文件成功”。
原文地址: https://www.cveoy.top/t/topic/Neq 著作权归作者所有。请勿转载和采集!