This commit is contained in:
12600k-rog-d4
2025-12-09 20:33:57 +08:00
parent 144ed3cbdf
commit 8f4d399cfd
1498 changed files with 3778 additions and 3654 deletions

View File

@@ -0,0 +1,49 @@
package api
import (
"bbs-go/internal/models/constants"
"bbs-go/internal/pkg/uploader"
"io"
"log/slog"
"strconv"
"github.com/kataras/iris/v12"
"github.com/mlogclub/simple/web"
"bbs-go/internal/services"
)
type UploadController struct {
Ctx iris.Context
}
func (c *UploadController) Post() *web.JsonResult {
user := services.UserTokenService.GetCurrent(c.Ctx)
if err := services.UserService.CheckPostStatus(user); err != nil {
return web.JsonError(err)
}
file, header, err := c.Ctx.FormFile("image")
if err != nil {
return web.JsonError(err)
}
defer file.Close()
if header.Size > constants.UploadMaxBytes {
return web.JsonErrorMsg("图片不能超过" + strconv.Itoa(constants.UploadMaxM) + "M")
}
contentType := header.Header.Get("Content-Type")
fileBytes, err := io.ReadAll(file)
if err != nil {
return web.JsonError(err)
}
slog.Info("上传文件:", slog.Any("filename", header.Filename), slog.Any("size", header.Size))
url, err := uploader.PutImage(fileBytes, contentType)
if err != nil {
return web.JsonError(err)
}
return web.NewEmptyRspBuilder().Put("url", url).JsonResult()
}