golang 文件上传和下载以及swagger配置

Posted zhzhlong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang 文件上传和下载以及swagger配置相关的知识,希望对你有一定的参考价值。

上传:

// @Summary 上传文件
// @Description
// @Tags file
// @Accept multipart/form-data
// @Param file formData file true "file"
// @Produce  json
// @Success 200 {object} filters.Response {"code":200,"data":nil,"msg":""}
// @Router /upload [post]
func UploadFile(ctx *gin.Context) {
    file, header, err := ctx.Request.FormFile("file")
    if err != nil {
        returnMsg(ctx, configs.ERROR_PARAMS, "", err.Error())
        return
    }
    //获取文件名
    filename := header.Filename
    //写入文件
    out, err := os.Create("./static/" + filename)
    if err != nil {
        returnMsg(ctx, configs.ERROR_SERVERE, "", err.Error())
        return
    }
    defer out.Close()
    _, err = io.Copy(out, file)
    if err != nil {
        log.Fatal(err)

    }
    returnMsg(ctx, 200, "", "success")
}

下载:

// @Summary 下载文件
// @Description
// @Tags file
// @Param filename query string true "file name"
// @Success 200 {object} gin.Context
// @Router /download [get]
func DownloadFile(ctx *gin.Context) {
    filename := ctx.DefaultQuery("filename", "")
    //fmt.Sprintf("attachment; filename=%s", filename)对下载的文件重命名
    ctx.Writer.Header().Add("Content-Disposition", fmt.Sprintf("attachment; filename=%s", filename))
    ctx.Writer.Header().Add("Content-Type", "application/octet-stream")
    ctx.File("./static/a.txt")
}

 

上传下载读取csv等文件:  https://blog.csdn.net/aaaadong/article/details/90177038

以上是关于golang 文件上传和下载以及swagger配置的主要内容,如果未能解决你的问题,请参考以下文章

golang使用swagger-ui(windows安装)

golang文件上传和下载

使用go-swagger为golang API自动生成swagger文档

Golang Gin 项目使用 Swagger

zabbix监控钉钉报警配置

Golang使用Gin-swagger搭建api