完成文件上传业务层
This commit is contained in:
27
server/internal/file/handler/fileupload/uploadfilehandler.go
Normal file
27
server/internal/file/handler/fileupload/uploadfilehandler.go
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
// Code scaffolded by goctl. Safe to edit.
|
||||||
|
// goctl 1.9.2
|
||||||
|
|
||||||
|
package fileupload
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/JACKYMYPERSON/hldrCenter/config"
|
||||||
|
"github.com/JACKYMYPERSON/hldrCenter/internal/file/internal/logic/fileupload"
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
)
|
||||||
|
|
||||||
|
func UploadFileHandler(cfg *config.Config) gin.HandlerFunc {
|
||||||
|
return func(c *gin.Context) {
|
||||||
|
// 1. 传递上下文:直接用 Gin 上下文的 c.Context()(包含超时、取消等信息,比 c.Request.Context() 更完整)
|
||||||
|
ctx := c.Request.Context()
|
||||||
|
|
||||||
|
// 2. 创建 Logic 实例:参数顺序/类型与 Logic 层构造函数完全匹配(ctx, cfg, c)
|
||||||
|
// 注意:此处第三个参数是 Gin 上下文 c,与你 Logic 层的 `c *gin.Context` 字段对应
|
||||||
|
l := fileupload.NewUploadFileLogic(ctx, cfg, c)
|
||||||
|
|
||||||
|
// 3. 调用 Logic 层方法:无需处理返回的 resp/err(因为 Logic 层已通过 l.c.JSON 返回响应)
|
||||||
|
// 即使返回 err,Logic 层也已提前返回错误响应,此处仅需调用方法即可
|
||||||
|
_, _ = l.UploadFile()
|
||||||
|
|
||||||
|
// 4. 无需额外响应处理!!!(关键:避免重复调用 c.JSON/httpx 导致错误)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
// Code scaffolded by goctl. Safe to edit.
|
||||||
|
// goctl 1.9.2
|
||||||
|
|
||||||
|
package fileupload
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/JACKYMYPERSON/hldrCenter/config"
|
||||||
|
"github.com/JACKYMYPERSON/hldrCenter/internal/file/internal/types"
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
|
||||||
|
"github.com/zeromicro/go-zero/core/logx"
|
||||||
|
)
|
||||||
|
|
||||||
|
type UploadFileLogic struct {
|
||||||
|
logx.Logger
|
||||||
|
ctx context.Context
|
||||||
|
cfg *config.Config
|
||||||
|
c *gin.Context
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewUploadFileLogic(ctx context.Context, cfg *config.Config, c *gin.Context) *UploadFileLogic {
|
||||||
|
return &UploadFileLogic{
|
||||||
|
Logger: logx.WithContext(ctx),
|
||||||
|
ctx: ctx,
|
||||||
|
cfg: cfg,
|
||||||
|
c: c,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *UploadFileLogic) UploadFile() (resp *types.UploadFileResp, err error) {
|
||||||
|
// todo: add your logic here and delete this line
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
12
server/internal/file/internal/types/types.go
Normal file
12
server/internal/file/internal/types/types.go
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
// Code generated by goctl. DO NOT EDIT.
|
||||||
|
// goctl 1.9.2
|
||||||
|
|
||||||
|
package types
|
||||||
|
|
||||||
|
type UploadFileResp struct {
|
||||||
|
Code int `json:"code"` // 业务状态码
|
||||||
|
Message string `json:"message"` // 提示信息
|
||||||
|
Data struct {
|
||||||
|
Url string `json:"url"` // 文件访问地址
|
||||||
|
} `json:"data"`
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user