马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
使用 Gin 框架处理惩罚文件上传是一个常见的使命,Gin 提供了简单而直观的方法来处理惩罚文件上传。下面将先容怎样用 Gin 实现文件上传功能。
1. 安装 Gin
假如你还没有安装 Gin,可以通过 Go 的包管理工具 go get 来安装:
- go get -u github.com/gin-gonic/gin
复制代码 2. 创建一个简单的文件上传接口
起首,你必要创建一个新的 Go 文件(比方 main.go),并编写以下代码:
- package main
- import (
- "fmt"
- "net/http"
- "os"
- "github.com/gin-gonic/gin"
- )
- func main() {
-
-
- r := gin.Default()
- // 设置静态文件目录,方便前端访问上传的文件
- r.Static("/uploads", "./uploads")
- // 设置模板文件
- r.LoadHTMLGlob("templates/*")
- // 渲染表单页面
- r.GET("/upload", func(c *gin.Context) {
-
-
- c.HTML(http.StatusOK, "upload.html", nil)
- })
- // 处理文件上传
- r.POST("/upload", func(c *gin.Context) {
-
-
- // 单个文件上传
- file, err := c.FormFile("file")
- if err != nil {
-
-
- c.String(http.StatusBadRequest, fmt.Sprintf("get form file err: %s", err.Error()))
- return
- }
- // 获取上传文件的原始文件名
- filename := file.Filename
- // 指定文件保存路径
- destination := "./uploads/" + filename
- // 创建 uploads 目录(如果不存在)
- err = os.MkdirAll("./uploads", os.ModePerm)
- if err != nil {
-
-
- c.String(http.StatusInternalServerError, fmt.Sprintf("mkdir err: %s", err.Error()))
- return
- }
- // 保存上传的文件到指定位置
- if err := c.SaveUploadedFile(file, destination); err != nil {
-
-
- c.String(http.StatusInternalServerError, fmt.Sprintf("upload file err: %s", err.Error()))
- return
- }
- // 返回成功信息
- c.String(http.StatusOK, fmt.Sprintf("'%s' uploaded!", filename))
- })
- // 启动服务器
- r.Run(":8080") // 默认在 :8080 端口监听
- }
复制代码 3. 创建上传表单页面
在templates目次下创建一个名为 upload.html 的文件,用于展示文件上传表单:
- <!DOCTYPE html>
- <html>
- <head>
- <title>Upload File</title>
- </head>
- <body>
- <h1>Upload a File
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |