From a81fbb724ebef6b159e1d6145783a2f7a3cce892 Mon Sep 17 00:00:00 2001 From: nannanwu Date: Mon, 23 Feb 2026 15:11:03 +0800 Subject: [PATCH] =?UTF-8?q?feat(admin):=20=E6=B7=BB=E5=8A=A0=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E4=B8=8A=E4=BC=A0=E5=9B=BE=E7=89=87=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=8F=8A=E7=9B=B8=E5=85=B3=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增用户添加页面路由 /user/add 和文件上传处理路由 /user/doUpload - 实现文件上传表单页面 admin/useradd.html - 在 UserController 中添加 Add 方法渲染上传页面 - 在 UserController 中添加 DoUpload 方法处理文件上传及保存 - 在中间件添加 c.Next() 确保请求链继续执行 --- controller/admin/userController.go | 39 +++++++++++++++++++++++++++++- middleware/init.go | 2 ++ router/adminRouter.go | 4 +++ templates/admin/useradd.html | 21 ++++++++++++++++ 4 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 templates/admin/useradd.html diff --git a/controller/admin/userController.go b/controller/admin/userController.go index 5115312..c873077 100644 --- a/controller/admin/userController.go +++ b/controller/admin/userController.go @@ -1,6 +1,11 @@ package admin -import "github.com/gin-gonic/gin" +import ( + "os" + "path/filepath" + + "github.com/gin-gonic/gin" +) type UserController struct { BaseController @@ -10,6 +15,38 @@ func (con UserController) Index(c *gin.Context) { con.Success(c) } +func (con UserController) Add(c *gin.Context) { + c.HTML(200, "admin/useradd", gin.H{}) +} + func (con UserController) Show(c *gin.Context) { c.String(200, "管理员用户详情") } + +func (con UserController) DoUpload(c *gin.Context) { + username := c.PostForm("username") + + file, err := c.FormFile("face") + if err != nil { + c.JSON(400, gin.H{"error": "获取文件失败: " + err.Error()}) + return + } + + uploadDir := "./upload" + if err := os.MkdirAll(uploadDir, os.ModePerm); err != nil { + c.JSON(500, gin.H{"error": "创建目录失败: " + err.Error()}) + return + } + + dst := filepath.Join(uploadDir, file.Filename) + if err := c.SaveUploadedFile(file, dst); err != nil { + c.JSON(500, gin.H{"error": "保存文件失败: " + err.Error()}) + return + } + + c.JSON(200, gin.H{ + "success": true, + "username": username, + "dst": dst, + }) +} diff --git a/middleware/init.go b/middleware/init.go index 01e4b84..4c3b3b8 100644 --- a/middleware/init.go +++ b/middleware/init.go @@ -19,4 +19,6 @@ func InitMiddleware(c *gin.Context) { time.Sleep(1 * time.Second) fmt.Println("统计信息" + cCp.Request.URL.Path) }() + + c.Next() } diff --git a/router/adminRouter.go b/router/adminRouter.go index 35f5012..710ad00 100644 --- a/router/adminRouter.go +++ b/router/adminRouter.go @@ -12,6 +12,8 @@ func AdminRouterInit(r *gin.Engine) { { adminRouter.GET("", admin.IndexController{}.Index) + adminRouter.GET("/user/add", admin.UserController{}.Add) + adminRouter.GET("/plist", admin.IndexController{}.Plist) adminRouter.GET("/login", admin.IndexController{}.Login) @@ -20,6 +22,8 @@ func AdminRouterInit(r *gin.Engine) { adminRouter.GET("/user", admin.UserController{}.Index) + adminRouter.POST("/user/doUpload", admin.UserController{}.DoUpload) + adminRouter.GET("/user/:id", admin.UserController{}.Show) } } diff --git a/templates/admin/useradd.html b/templates/admin/useradd.html new file mode 100644 index 0000000..e82f951 --- /dev/null +++ b/templates/admin/useradd.html @@ -0,0 +1,21 @@ +{{ define "admin/useradd" }} + + + + + Title + + +

演示文件上传

+
+ + +
+ + +
+ +
+ + +{{ end }} \ No newline at end of file