gin从入门到放弃

文件上传

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模拟请求

image.png
上一篇下一篇

猜你喜欢

热点阅读