{{define "admin/useradd.html"}}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h2>演示上传</h2>
<form action="/admin/user/doUpload" method="post" enctype="multipart/form-data">
用户名:<input type="text" name="username" placeholder="用户名">
<br>
<br>
头像<input type="file" name="face"/>
<br> <br>
<input type="submit" value="提交">
</form>
</body>
</html>
{{end}}
Ps.需要在上传文件的 form 表单上面需要加入 enctype="multipart/form-data"
func (con UserController) DoUpload(c *gin.Context) {
username := c.PostForm("username")
file, err := c.FormFile("face")
dst := path.Join("./static/upload", file.Filename)
//file.Filename 获取文件名称
if err == nil {
c.SaveUploadedFile(file, dst)
}
//c.String(200, "执行上传")
c.JSON(200, gin.H{
"success": true,
"username": username,
"dst": dst,
})
}
{{define "admin/useredit.html"}}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h2>演示上传</h2>
<form action="/admin/user/doEdit" method="post" enctype="multipart/form-data">
用户名:<input type="text" name="username" placeholder="用户名">
<br>
<br>
头像1<input type="file" name="face1"/>
<br> <br>
头像1<input type="file" name="face2"/>
<br> <br>
<input type="submit" value="提交">
</form>
</body>
</html>
{{end}}
func (con UserController) DoEdit(c *gin.Context) {
c.String(200, "执行修改")
username := c.PostForm("username")
face1, err1 := c.FormFile("face1")
dst1 := path.Join("./static/upload", face1.Filename)
//file.Filename 获取文件名称
if err1 == nil {
c.SaveUploadedFile(face1, dst1)
}
face2, err2 := c.FormFile("face2")
dst2 := path.Join("./static/upload", face2.Filename)
//file.Filename 获取文件名称
if err2 == nil {
c.SaveUploadedFile(face2, dst2)
}
//c.String(200, "执行上传")
c.JSON(200, gin.H{
"success": true,
"username": username,
"dst1": dst1,
"dst2": dst2,
})
}
func (con UserController) Edit(c *gin.Context) {
//c.String(200, "用户列表")
c.HTML(200, "admin/useredit.html", gin.H{})
}
{{define "admin/useradd.html"}}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h2>演示上传</h2>
<form action="/admin/user/doUpload" method="post" enctype="multipart/form-data">
用户名:<input type="text" name="username" placeholder="用户名">
<br>
<br>
头像<input type="file" name="upload[]"/>
<br> <br>
壁纸<input type="file" name="upload[]"/>
<br> <br>
背景<input type="file" name="upload[]"/>
<br> <br>
<input type="submit" value="提交">
</form>
</body>
</html>
{{end}}
func (con UserController) DoUpload(c *gin.Context) {
username := c.PostForm("username")
//获取上传的文件
file, err := c.FormFile("face")
if err == nil {
extName := path.Ext(file.Filename)
allowExtMap := map[string]bool{
".jpg": true,
".png": true,
".gif": true,
".jpeg": true,
}
if _, ok := allowExtMap[extName]; !ok {
c.String(200, "上传的文件类型不合法")
}
//创建图片保存目录
day := models.GetDay()
dir := "./static/upload/" + day
err := os.MkdirAll(dir, 0666)
if err != nil {
fmt.Println(err)
c.String(200, "MkdirAll失败")
return
}
//生成文件名
fileName := strconv.FormatInt(models.GetUnix(), 10) + extName
//执行上传
dst := path.Join(dir, fileName)
c.SaveUploadedFile(file, dst)
}
//c.String(200, "执行上传")
c.JSON(200, gin.H{
"success": true,
"username": username,
})
}