文件上传下载ok
This commit is contained in:
@@ -19,5 +19,6 @@
|
|||||||
"warehouses_name_err":16,
|
"warehouses_name_err":16,
|
||||||
"warehouses_id_err":17,
|
"warehouses_id_err":17,
|
||||||
"file_id_error":18,
|
"file_id_error":18,
|
||||||
"file_name_err":19
|
"file_name_err":19,
|
||||||
|
"file_not_fund":20
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,10 @@
|
|||||||
package routers
|
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{}) {
|
func Return_json(ctx *gin.Context, err_msg string, data map[string]interface{}) {
|
||||||
var err_code = Error_code[err_msg]
|
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)
|
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)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|||||||
@@ -19,6 +19,31 @@ import (
|
|||||||
func Router_file(r *gin.RouterGroup) {
|
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) {
|
r.GET("/download/id/:id", func(ctx *gin.Context) {
|
||||||
id := ctx.Param("id")
|
id := ctx.Param("id")
|
||||||
id_int, err := strconv.ParseInt(id, 10, 0)
|
id_int, err := strconv.ParseInt(id, 10, 0)
|
||||||
@@ -29,14 +54,12 @@ func Router_file(r *gin.RouterGroup) {
|
|||||||
ID: uint(id_int),
|
ID: uint(id_int),
|
||||||
}
|
}
|
||||||
if models.DB.Where(&file_info).First(&file_info).Error == nil {
|
if models.DB.Where(&file_info).First(&file_info).Error == nil {
|
||||||
fmt.Println(file_info)
|
Return_file(ctx, &file_info, false)
|
||||||
} else {
|
} 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 {
|
} else {
|
||||||
Return_json(ctx, "file_id_error", nil)
|
Return_json(ctx, "file_id_error", nil)
|
||||||
}
|
}
|
||||||
@@ -148,6 +171,7 @@ func Router_file(r *gin.RouterGroup) {
|
|||||||
fund_file_info2.Const += 1
|
fund_file_info2.Const += 1
|
||||||
models.DB.Where(&fund_file_info).Updates(&fund_file_info2)
|
models.DB.Where(&fund_file_info).Updates(&fund_file_info2)
|
||||||
} else {
|
} else {
|
||||||
|
fund_file_info.Path = dst
|
||||||
models.DB.Create(&fund_file_info) // 传入指针
|
models.DB.Create(&fund_file_info) // 传入指针
|
||||||
fund_file_info2 = fund_file_info
|
fund_file_info2 = fund_file_info
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user