码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2020-03-24 09:13:39      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:data   route   erro   读取   router   details   sdn   defer   esc   

上传:

// @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配置

标签:data   route   erro   读取   router   details   sdn   defer   esc   

原文地址:https://www.cnblogs.com/zhzhlong/p/12556457.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!