要使用go gin实现上传文件功能,可以按照以下步骤进行操作:

  1. 在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"
)
  1. 初始化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
}
  1. 创建路由和处理函数
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")
}
  1. 测试上传文件功能

使用Postman或其他HTTP客户端向http://127.0.0.1:8080/upload发送POST请求,选择一个文件并上传即可。上传成功后,会返回一个JSON格式的响应,消息为“上传文件成功”。

go gin实现上传文件功能

原文地址: https://www.cveoy.top/t/topic/Neq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录