文件上传
2019-10-16 本文已影响0人
寒云暮雨
1、单文件上传
/*
@Author : 寒云
@Email : 1355081829@qq.com
@Time : 2019/10/15 11:51
*/
package main
import (
"fmt"
"github.com/gin-gonic/gin"
"log"
"net/http"
)
func main() {
r := gin.Default()
// 为 multipart forms 设置较低的内存限制 (默认是 32 MiB)
// router.MaxMultipartMemory = 8 << 20 // 8 MiB
r.POST("/upload", func(c *gin.Context) {
// 单文件
file, _ := c.FormFile("file")
log.Println(file.Filename)
// 上传文件至指定目录
if err := c.SaveUploadedFile(file, "./upload/"+file.Filename); err != nil {
fmt.Println(err)
}
c.String(http.StatusOK, fmt.Sprintf("'%s' uploaded!", file.Filename))
})
_ = r.Run(":8089")
}
接收form中key为file的文件
file, _ := c.FormFile("file")
用postman模拟请求
image.png
2、多图上传
r.POST("/upload/many", func(c *gin.Context) {
// 单文件
form, _ := c.MultipartForm()
files := form.File["upload[]"]
fileName := make([]string, 0)
for _, file := range files {
if err := c.SaveUploadedFile(file, "./upload/"+file.Filename); err == nil {
fileName = append(fileName, file.Filename)
}
}
c.JSON(http.StatusOK, gin.H{"files": fileName})
})
请求地址http://127.0.0.1:8089/upload/many,用postman模拟请求