package controllers import ( "cc-officialweb/models" "cc-officialweb/utils" beego "github.com/beego/beego/v2/server/web" "github.com/google/uuid" "strings" ) type UploadImageController struct { beego.Controller } type JSON struct { Code int Msg string Data any } func (up *UploadImageController) Post() { file, header, err := up.GetFile("file") types := up.GetString("types") if err != nil { up.Data["json"] = &JSON{Code: 101, Msg: "上传失败"} up.ServeJSON() return } defer file.Close() index := strings.Split(header.Filename, ".")[1] if index != "jpg" && index != "png" && index != "jpeg" { up.Data["json"] = &JSON{Code: 102, Msg: "文件类型错误"} up.ServeJSON() return } fileName := uuid.NewString() + "." + index if err := up.SaveToFile("file", "./static/upload/"+fileName); err != nil { up.Data["json"] = &JSON{Code: 101, Msg: "上传失败"} up.ServeJSON() return } var resourse models.Resource resourse.Name = fileName resourse.Url = "/image/" + fileName resourse.Type = types tx := utils.DB.Create(&resourse) if tx.RowsAffected > 0 { up.Data["json"] = &JSON{Code: 200, Msg: "上传成功", Data: resourse.Url} up.ServeJSON() return } }