zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    OCP-1Z0-053-V12.02-541题
    OCP-1Z0-053-V12.02-544题
    OCP-1Z0-053-V12.02-545题
    OCP-1Z0-053-V13.02-711题
    OCP-1Z0-053-V12.02-493题
    OCP-1Z0-053-V13.02-696题
    OCP-1Z0-053-V12.02-522题
    OCP-1Z0-053-V12.02-523题
    OCP-1Z0-053-V12.02-534题
    OCP-1Z0-053-V13.02-692题
  • 原文地址:https://www.cnblogs.com/zhzhlong/p/12556457.html
Copyright © 2011-2022 走看看