Gin:页面上传图片到服务器

页面代码:

<!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:记得修改上传图片的路径。

猜你喜欢

转载自blog.csdn.net/lena7/article/details/123457572
今日推荐