gin 文件上传

GoLang gin gorm 学习笔记

文件上传 写入本地

r.POST("/upload", func(c *gin.Context) {
    file, _ := c.FormFile("file")
    // 打开文件
    in, _ := file.Open()
    defer in.Close() //defer 等待函数执行完毕释放资源
    //创建文件
    out, _ := os.Create("./" + file.Filename)
    defer out.Close()
    // 将文件内容写入
    io.Copy(out, in)

    // 将上传的文件返回
    c.Writer.Header().Add("Content-Disposition", fmt.Sprintf("attachment; filename=%s", file.Filename))
    c.File("./" + file.Filename)
})

多文件上传

r.POST("/uploads", func(c *gin.Context) {
    from, _ := c.MultipartForm()
    files := from.File["files"]

    for _, file := range files {
        // 上传文件至指定目录
        filename := file.Filename
        c.SaveUploadedFile(file, filename)
    }

    c.JSON(200, gin.H{
        "message": "upload success",
    })
})