| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- package system
- import (
- "context"
- "fmt"
- "io"
- "net/http"
- "os"
- "path/filepath"
- "git.i2edu.net/i2/i2-bill-api/internal/svc"
- "git.i2edu.net/i2/i2-bill-api/internal/types"
- "git.i2edu.net/i2/go-zero/core/logx"
- )
- type SystemFileUploadLogic struct {
- logx.Logger
- ctx context.Context
- svcCtx *svc.ServiceContext
- }
- func NewSystemFileUploadLogic(ctx context.Context, svcCtx *svc.ServiceContext) SystemFileUploadLogic {
- return SystemFileUploadLogic{
- Logger: logx.WithContext(ctx),
- ctx: ctx,
- svcCtx: svcCtx,
- }
- }
- func (l *SystemFileUploadLogic) SystemFileUpload(r *http.Request) (*types.Response, error) {
- // todo: add your logic here and delete this line
- userId := l.svcCtx.GetUserIdByJwt(l.ctx)
- file, fileHeader, err := r.FormFile("file")
- if err != nil {
- logx.Error(err.Error())
- return &types.Response{500, err.Error(), nil}, nil
- }
- dir := "asserts/avatar"
- _, err = os.Stat(dir)
- if err != nil && !os.IsExist(err) {
- err := os.MkdirAll(dir, os.ModePerm)
- if err != nil {
- logx.Error(err.Error())
- return &types.Response{500, err.Error(), nil}, nil
- }
- }
- fileName := fmt.Sprintf("%s/%d%s", dir, userId, filepath.Ext(fileHeader.Filename))
- newFile, err := os.OpenFile(fileName, os.O_TRUNC|os.O_CREATE|os.O_RDWR, 0777)
- if err != nil {
- logx.Error(err.Error())
- return &types.Response{500, err.Error(), nil}, nil
- }
- _, err = io.Copy(newFile, file)
- if err != nil {
- logx.Error(err.Error())
- return &types.Response{500, err.Error(), nil}, nil
- }
- return &types.Response{200, "", fileName}, nil
- }
|