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
|
||||
|
||||
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,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -19,4 +19,6 @@ func InitMiddleware(c *gin.Context) {
|
||||
time.Sleep(1 * time.Second)
|
||||
fmt.Println("统计信息" + cCp.Request.URL.Path)
|
||||
}()
|
||||
|
||||
c.Next()
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
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