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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM