页面代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>上传图片</title>
</head>
<body>
<form action="http://localhost:8080/upload" method="post" enctype="multipart/form-data">
<input type="file" name="picture">
<input type="submit" value="上传一张图片">
</form>
<hr>
<form action="http://localhost:8080/uploads" method="post" enctype="multipart/form-data">
<input type="file" multiple name="pictures">
<input type="submit" value="上传多张图片">
</form>
</body>
</html>
后台代码:
package main
import (
"fmt"
"path"
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
r.POST("/upload", UploadOne)
r.POST("/uploads", UploadMany)
r.Run()
}
// todo 修改上传图片存储路径
var commonPath = "/Users/lena/GoWork/golang/golang-learning-code/web/gin/upload/picture"
func UploadOne(c *gin.Context) {
// 通过<input>的name属性获取图片
file, err := c.FormFile("picture")
if err != nil {
fmt.Println("get picture:", err)
return
}
dst := path.Join(commonPath, file.Filename)
err = c.SaveUploadedFile(file, dst)
if err != nil {
fmt.Println("upload error:", err)
return
}
fmt.Println("upload success!")
}
func UploadMany(c *gin.Context) {
form, err := c.MultipartForm()
if err != nil {
fmt.Println("get picture:", err)
return
}
files := form.File["pictures"]
for _, file := range files {
fmt.Println("文件名:", file.Filename)
dst := path.Join(commonPath, file.Filename)
c.SaveUploadedFile(file, dst)
}
fmt.Println("upload success!")
}
tip:记得修改上传图片的路径。