diff --git a/gin_ops/def_config/error_codes.json b/gin_ops/def_config/error_codes.json index 77b52b7..a4ad263 100644 --- a/gin_ops/def_config/error_codes.json +++ b/gin_ops/def_config/error_codes.json @@ -19,5 +19,6 @@ "warehouses_name_err":16, "warehouses_id_err":17, "file_id_error":18, - "file_name_err":19 + "file_name_err":19, + "file_not_fund":20 } \ No newline at end of file diff --git a/gin_ops/routers/return_data.go b/gin_ops/routers/return_data.go index 9628a6c..bd1e58c 100644 --- a/gin_ops/routers/return_data.go +++ b/gin_ops/routers/return_data.go @@ -1,6 +1,10 @@ package routers -import "github.com/gin-gonic/gin" +import ( + "saas/models" + + "github.com/gin-gonic/gin" +) func Return_json(ctx *gin.Context, err_msg string, data map[string]interface{}) { var err_code = Error_code[err_msg] @@ -20,3 +24,12 @@ func Return_json(ctx *gin.Context, err_msg string, data map[string]interface{}) ctx.JSON(200, &return_data) } + +func Return_file(ctx *gin.Context, file_info *models.File_info, preview bool) { + if preview { + ctx.File(file_info.Path) + } else { + ctx.FileAttachment(file_info.Path, file_info.Name) + } + +} diff --git a/gin_ops/routers/routers_flie.go b/gin_ops/routers/routers_flie.go index 722cbb7..9563004 100644 --- a/gin_ops/routers/routers_flie.go +++ b/gin_ops/routers/routers_flie.go @@ -19,6 +19,31 @@ import ( func Router_file(r *gin.RouterGroup) { //无需权限,可以直接下载的接口 + r.GET("/preview/id/:id", func(ctx *gin.Context) { + id := ctx.Param("id") + id_int, err := strconv.ParseInt(id, 10, 0) + if err == nil { + if id_int != 0 { + //fmt.Println(id_int) + file_info := models.File_info{ + ID: uint(id_int), + } + if models.DB.Where(&file_info).First(&file_info).Error == nil { + Return_file(ctx, &file_info, true) + } else { + //fmt.Println("not fund") + Return_json(ctx, "file_not_fund", nil) + } + + } else { + Return_json(ctx, "file_id_error", nil) + } + + } else { + Return_json(ctx, "file_id_error", nil) + } + + }) r.GET("/download/id/:id", func(ctx *gin.Context) { id := ctx.Param("id") id_int, err := strconv.ParseInt(id, 10, 0) @@ -29,14 +54,12 @@ func Router_file(r *gin.RouterGroup) { ID: uint(id_int), } if models.DB.Where(&file_info).First(&file_info).Error == nil { - fmt.Println(file_info) + Return_file(ctx, &file_info, false) } else { - fmt.Println("not fund") + //fmt.Println("not fund") + Return_json(ctx, "file_not_fund", nil) } - Return_json(ctx, "api_ok", map[string]interface{}{ - "data": file_info, - }) } else { Return_json(ctx, "file_id_error", nil) } @@ -148,6 +171,7 @@ func Router_file(r *gin.RouterGroup) { fund_file_info2.Const += 1 models.DB.Where(&fund_file_info).Updates(&fund_file_info2) } else { + fund_file_info.Path = dst models.DB.Create(&fund_file_info) // 传入指针 fund_file_info2 = fund_file_info }