golang 文件上传和下载以及swagger配置
2021-04-02 07:29
标签:data route erro 读取 router details sdn defer esc 上传: 下载: 上传下载读取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// @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")
}
上一篇:Jsoup
文章标题:golang 文件上传和下载以及swagger配置
文章链接:http://soscw.com/index.php/essay/71303.html