文档
文件上传:https://gin-gonic.com/zh-cn/docs/examples/upload-file
postman:https://www.getpostman.com/downloads
单文件上传
func main() {
r := gin.Default()
r.POST("upload", func(c *gin.Context) {
file, err := c.FormFile("file")
if err != nil {
c.String(http.StatusBadRequest, "请求失败")
return
}
//获取文件名
fileName := file.Filename
fmt.Println("文件名:", fileName)
//保存文件到服务器本地:SaveUploadedFile(文件头,保存路径)
dst := "../tmp/" + file.Filename
// 上传文件至指定的完整文件路径
err1 := c.SaveUploadedFile(file, dst)
if err1 != nil {
c.String(http.StatusBadRequest, "保存失败 Error:%s", err1.Error())
return
}
c.String(http.StatusOK, "上传文件成功")
})
r.Run()
}
多文件上传
func main() {
r := gin.Default()
// 为 multipart forms 设置较低的内存限制 (默认是 32 MiB)
r.MaxMultipartMemory = 8 << 20 // 8 MiB
r.POST("uploadMore", func(c *gin.Context) {
form, _ := c.MultipartForm()
//这里是多文件上传 在之前单文件file上传的基础上加 [] 变成files[] 类似文件数组的意思
files := form.File["files[]"]
for _, file := range files {
dst := "../tmp/" + file.Filename
err := c.SaveUploadedFile(file, dst)
if err != nil {
c.String(http.StatusBadRequest, "保存失败 Error:%s", err.Error())
return
}
}
c.String(http.StatusOK, fmt.Sprintf("%d 个文件上传成功", len(files)))
})
r.Run()
}