uploadImage.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package controllers
  2. import (
  3. "cc-officialweb/models"
  4. "cc-officialweb/utils"
  5. beego "github.com/beego/beego/v2/server/web"
  6. "github.com/google/uuid"
  7. "strings"
  8. )
  9. type UploadImageController struct {
  10. beego.Controller
  11. }
  12. type JSON struct {
  13. Code int
  14. Msg string
  15. Data any
  16. }
  17. func (up *UploadImageController) Post() {
  18. file, header, err := up.GetFile("file")
  19. types := up.GetString("types")
  20. if err != nil {
  21. up.Data["json"] = &JSON{Code: 101, Msg: "上传失败"}
  22. up.ServeJSON()
  23. return
  24. }
  25. defer file.Close()
  26. index := strings.Split(header.Filename, ".")[1]
  27. if index != "jpg" && index != "png" && index != "jpeg" {
  28. up.Data["json"] = &JSON{Code: 102, Msg: "文件类型错误"}
  29. up.ServeJSON()
  30. return
  31. }
  32. fileName := uuid.NewString() + "." + index
  33. if err := up.SaveToFile("file", "./static/upload/"+fileName); err != nil {
  34. up.Data["json"] = &JSON{Code: 101, Msg: "上传失败"}
  35. up.ServeJSON()
  36. return
  37. }
  38. var resourse models.Resource
  39. resourse.Name = fileName
  40. resourse.Url = "/image/" + fileName
  41. resourse.Type = types
  42. tx := utils.DB.Create(&resourse)
  43. if tx.RowsAffected > 0 {
  44. up.Data["json"] = &JSON{Code: 200, Msg: "上传成功", Data: resourse.Url}
  45. up.ServeJSON()
  46. return
  47. }
  48. }