10-Gin 文件上传 --[Gin 框架入门精讲与实战案例] [复制链接]
发表于 2025-11-16 01:35:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
使用 Gin 框架处理惩罚文件上传是一个常见的使命,Gin 提供了简单而直观的方法来处理惩罚文件上传。下面将先容怎样用 Gin 实现文件上传功能
1. 安装 Gin

假如你还没有安装 Gin,可以通过 Go 的包管理工具 go get 来安装:
  1. go get -u github.com/gin-gonic/gin
复制代码
2. 创建一个简单的文件上传接口

起首,你必要创建一个新的 Go 文件(比方 main.go),并编写以下代码
  1. package main
  2. import (
  3.         "fmt"
  4.         "net/http"
  5.         "os"
  6.         "github.com/gin-gonic/gin"
  7. )
  8. func main() {
  9.    
  10.    
  11.         r := gin.Default()
  12.         // 设置静态文件目录,方便前端访问上传的文件
  13.         r.Static("/uploads", "./uploads")
  14.         // 设置模板文件
  15.         r.LoadHTMLGlob("templates/*")
  16.         // 渲染表单页面
  17.         r.GET("/upload", func(c *gin.Context) {
  18.    
  19.    
  20.                 c.HTML(http.StatusOK, "upload.html", nil)
  21.         })
  22.         // 处理文件上传
  23.         r.POST("/upload", func(c *gin.Context) {
  24.    
  25.    
  26.                 // 单个文件上传
  27.                 file, err := c.FormFile("file")
  28.                 if err != nil {
  29.    
  30.    
  31.                         c.String(http.StatusBadRequest, fmt.Sprintf("get form file err: %s", err.Error()))
  32.                         return
  33.                 }
  34.                 // 获取上传文件的原始文件名
  35.                 filename := file.Filename
  36.                 // 指定文件保存路径
  37.                 destination := "./uploads/" + filename
  38.                 // 创建 uploads 目录(如果不存在)
  39.                 err = os.MkdirAll("./uploads", os.ModePerm)
  40.                 if err != nil {
  41.    
  42.    
  43.                         c.String(http.StatusInternalServerError, fmt.Sprintf("mkdir err: %s", err.Error()))
  44.                         return
  45.                 }
  46.                 // 保存上传的文件到指定位置
  47.                 if err := c.SaveUploadedFile(file, destination); err != nil {
  48.    
  49.    
  50.                         c.String(http.StatusInternalServerError, fmt.Sprintf("upload file err: %s", err.Error()))
  51.                         return
  52.                 }
  53.                 // 返回成功信息
  54.                 c.String(http.StatusOK, fmt.Sprintf("'%s' uploaded!", filename))
  55.         })
  56.         // 启动服务器
  57.         r.Run(":8080") // 默认在 :8080 端口监听
  58. }
复制代码
3. 创建上传表单页面

在templates目次下创建一个名为 upload.html 的文件,用于展示文件上传表单:
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <title>Upload File</title>
  5. </head>
  6. <body>
  7.     <h1>Upload a File
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表