uploadImage.go 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. package controllers
  2. import (
  3. "cc-officialweb/models"
  4. "cc-officialweb/service"
  5. "cc-officialweb/unity"
  6. "cc-officialweb/utils"
  7. "encoding/json"
  8. beego "github.com/beego/beego/v2/server/web"
  9. "github.com/google/uuid"
  10. "strconv"
  11. "strings"
  12. )
  13. type UploadImageController struct {
  14. beego.Controller
  15. }
  16. type JSON struct {
  17. Code int
  18. Msg string
  19. Data any
  20. }
  21. type JSONS struct {
  22. Total int
  23. Data any
  24. }
  25. // Post 上传图片
  26. func (up *UploadImageController) Post() {
  27. file, header, err := up.GetFile("file")
  28. types := up.GetString("types")
  29. if err != nil {
  30. up.Data["json"] = &JSON{Code: 101, Msg: "上传失败"}
  31. up.ServeJSON()
  32. return
  33. }
  34. defer file.Close()
  35. index := strings.Split(header.Filename, ".")[1]
  36. if index != "jpg" && index != "png" && index != "jpeg" {
  37. up.Data["json"] = &JSON{Code: 102, Msg: "文件类型错误"}
  38. up.ServeJSON()
  39. return
  40. }
  41. fileName := uuid.NewString() + "." + index
  42. if err := up.SaveToFile("file", "./static/upload/"+fileName); err != nil {
  43. up.Data["json"] = &JSON{Code: 101, Msg: "上传失败"}
  44. up.ServeJSON()
  45. return
  46. }
  47. var resourse models.Resource
  48. resourse.Name = fileName
  49. resourse.Url = "/image/" + fileName
  50. resourse.Type = types
  51. tx := utils.DB.Create(&resourse)
  52. if tx.RowsAffected > 0 {
  53. up.Data["json"] = &JSON{Code: 200, Msg: "上传成功", Data: resourse.Url}
  54. up.ServeJSON()
  55. return
  56. }
  57. }
  58. // UpdateResource 修改图片
  59. func (up *UploadImageController) UpdateResource() {
  60. getString := up.GetString("id")
  61. atoi, _ := strconv.Atoi(getString)
  62. file, header, err := up.GetFile("file")
  63. types := up.GetString("types")
  64. if err != nil {
  65. up.Data["json"] = &JSON{Code: 101, Msg: "上传失败"}
  66. up.ServeJSON()
  67. return
  68. }
  69. defer file.Close()
  70. index := strings.Split(header.Filename, ".")[1]
  71. if index != "jpg" && index != "png" && index != "jpeg" {
  72. up.Data["json"] = &JSON{Code: 102, Msg: "文件类型错误"}
  73. up.ServeJSON()
  74. return
  75. }
  76. fileName := uuid.NewString() + "." + index
  77. if err := up.SaveToFile("file", "./static/upload/"+fileName); err != nil {
  78. up.Data["json"] = &JSON{Code: 101, Msg: "上传失败"}
  79. up.ServeJSON()
  80. return
  81. }
  82. var resource models.Resource
  83. resource.ID = uint(atoi)
  84. resource.Name = fileName
  85. resource.Url = "/image/" + fileName
  86. resource.Type = types
  87. resources := service.UpdateResource(resource)
  88. if len(resources.Url) == 0 {
  89. up.Data["json"] = &JSON{Code: 101, Msg: "修改失败"}
  90. up.ServeJSON()
  91. return
  92. } else {
  93. up.Data["json"] = &JSON{Code: 200, Msg: "修改成功", Data: resource.Url}
  94. up.ServeJSON()
  95. }
  96. }
  97. // DeleteResourceById 删除图片
  98. func (up *UploadImageController) DeleteResourceById() {
  99. getString := up.GetString("id")
  100. atoi, _ := strconv.Atoi(getString)
  101. id, err := unity.DeleteById(atoi, models.Resource{})
  102. if err != nil {
  103. up.Data["json"] = &JSON{Code: 101, Msg: "删除失败"}
  104. up.ServeJSON()
  105. return
  106. } else {
  107. up.Data["json"] = &JSON{Code: 200, Msg: "删除成功", Data: id}
  108. up.ServeJSON()
  109. }
  110. }
  111. // GetResource 获取所有图片
  112. func (up *UploadImageController) GetResource() {
  113. var page unity.PageParams
  114. err := json.Unmarshal(up.Ctx.Input.RequestBody, &page)
  115. if err != nil {
  116. up.Data["json"] = &JSON{Code: 101, Msg: "参数错误"}
  117. up.ServeJSON()
  118. return
  119. }
  120. result, total, err := unity.Paginate(page, models.Resource{})
  121. if err != nil {
  122. up.Data["json"] = &JSON{Code: 101, Msg: "查询失败"}
  123. up.ServeJSON()
  124. return
  125. } else {
  126. up.Data["json"] = &JSON{Code: 200, Msg: "查询成功", Data: &JSONS{
  127. Total: total,
  128. Data: result,
  129. }}
  130. up.ServeJSON()
  131. return
  132. }
  133. }