feat(admin): 添加用户上传图片功能及相关页面
- 新增用户添加页面路由 /user/add 和文件上传处理路由 /user/doUpload - 实现文件上传表单页面 admin/useradd.html - 在 UserController 中添加 Add 方法渲染上传页面 - 在 UserController 中添加 DoUpload 方法处理文件上传及保存 - 在中间件添加 c.Next() 确保请求链继续执行
This commit is contained in:
@@ -1,6 +1,11 @@
|
|||||||
package admin
|
package admin
|
||||||
|
|
||||||
import "github.com/gin-gonic/gin"
|
import (
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
)
|
||||||
|
|
||||||
type UserController struct {
|
type UserController struct {
|
||||||
BaseController
|
BaseController
|
||||||
@@ -10,6 +15,38 @@ func (con UserController) Index(c *gin.Context) {
|
|||||||
con.Success(c)
|
con.Success(c)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (con UserController) Add(c *gin.Context) {
|
||||||
|
c.HTML(200, "admin/useradd", gin.H{})
|
||||||
|
}
|
||||||
|
|
||||||
func (con UserController) Show(c *gin.Context) {
|
func (con UserController) Show(c *gin.Context) {
|
||||||
c.String(200, "管理员用户详情")
|
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,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -19,4 +19,6 @@ func InitMiddleware(c *gin.Context) {
|
|||||||
time.Sleep(1 * time.Second)
|
time.Sleep(1 * time.Second)
|
||||||
fmt.Println("统计信息" + cCp.Request.URL.Path)
|
fmt.Println("统计信息" + cCp.Request.URL.Path)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
c.Next()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,8 @@ func AdminRouterInit(r *gin.Engine) {
|
|||||||
{
|
{
|
||||||
adminRouter.GET("", admin.IndexController{}.Index)
|
adminRouter.GET("", admin.IndexController{}.Index)
|
||||||
|
|
||||||
|
adminRouter.GET("/user/add", admin.UserController{}.Add)
|
||||||
|
|
||||||
adminRouter.GET("/plist", admin.IndexController{}.Plist)
|
adminRouter.GET("/plist", admin.IndexController{}.Plist)
|
||||||
|
|
||||||
adminRouter.GET("/login", admin.IndexController{}.Login)
|
adminRouter.GET("/login", admin.IndexController{}.Login)
|
||||||
@@ -20,6 +22,8 @@ func AdminRouterInit(r *gin.Engine) {
|
|||||||
|
|
||||||
adminRouter.GET("/user", admin.UserController{}.Index)
|
adminRouter.GET("/user", admin.UserController{}.Index)
|
||||||
|
|
||||||
|
adminRouter.POST("/user/doUpload", admin.UserController{}.DoUpload)
|
||||||
|
|
||||||
adminRouter.GET("/user/:id", admin.UserController{}.Show)
|
adminRouter.GET("/user/:id", admin.UserController{}.Show)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
21
templates/admin/useradd.html
Normal file
21
templates/admin/useradd.html
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{{ define "admin/useradd" }}
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Title</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>演示文件上传</h1>
|
||||||
|
<form action="/admin/user/doUpload" method="post" enctype="multipart/form-data">
|
||||||
|
<label for="username">用户名:</label>
|
||||||
|
<input type="text" id="username" name="username" placeholder="用户名">
|
||||||
|
<br>
|
||||||
|
<label for="face">头 像:</label>
|
||||||
|
<input type="file" id="face" name="face">
|
||||||
|
<br>
|
||||||
|
<input type="submit" value="上传">
|
||||||
|
</form>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
{{ end }}
|
||||||
Reference in New Issue
Block a user