upload.go 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. /*
  2. * @desc:后台上传
  3. * @company:云南省奇讯科技有限公司
  4. * @Author: yixiaohu
  5. * @Date: 2021/7/7 15:10
  6. */
  7. package api
  8. import (
  9. "gfast/app/common/adapter"
  10. "github.com/gogf/gf/frame/g"
  11. "github.com/gogf/gf/net/ghttp"
  12. "github.com/gogf/gf/text/gregex"
  13. "github.com/gogf/gf/text/gstr"
  14. "net/url"
  15. )
  16. type upload struct {
  17. SystemBase
  18. }
  19. var Upload = new(upload)
  20. // UpImg 单图上传
  21. func (c *upload) UpImg(r *ghttp.Request) {
  22. upFile := r.GetUploadFile("file")
  23. info, err := adapter.Upload.UpImg(upFile)
  24. if err != nil {
  25. c.FailJsonExit(r, "上传失败,"+err.Error())
  26. }
  27. res := g.Map{
  28. "fileInfo": info,
  29. }
  30. c.SusJsonExit(r, res)
  31. }
  32. // @Summary CkEditor编辑器上传附件
  33. // @Description CkEditor编辑器上传附件
  34. // @Tags 公共
  35. // @Param upFile body string true "upFile"
  36. // @Success 0 {object} c.Response "{"code": 200, "data": [...]}"
  37. // @Router /system/upload/ckEditorUp [post]
  38. // @Security
  39. func (c *upload) CkEditorUp(r *ghttp.Request) {
  40. upFile := r.GetUploadFile("upload")
  41. fType := gstr.ToLower(r.GetString("type"))
  42. var info *adapter.FileInfo
  43. var err error
  44. if fType == "images" {
  45. info, err = adapter.Upload.UpImg(upFile)
  46. } else if fType == "files" {
  47. info, err = adapter.Upload.UpFile(upFile)
  48. }
  49. if err != nil {
  50. r.Response.WriteJson(g.Map{"error": g.Map{"message": "上传失败," + err.Error(), "number": 105}})
  51. } else {
  52. parseInfo, _ := url.Parse(r.GetUrl())
  53. var fileUrl = info.FileUrl
  54. if !gregex.IsMatchString("^http", info.FileUrl) {
  55. fileUrl = parseInfo.Scheme + "://" + parseInfo.Host + "/" + info.FileUrl
  56. }
  57. r.Response.WriteJson(g.Map{"fileName": info.FileName, "uploaded": 1, "url": fileUrl})
  58. }
  59. }
  60. // @Summary 批量上传图片
  61. // @Description 批量上传图片
  62. // @Tags 公共
  63. // @Param file body string true "file"
  64. // @Success 0 {object} c.Response "{"code": 200, "data": [...]}"
  65. // @Router /system/upload/upImgs [post]
  66. // @Security
  67. func (c *upload) UpImgs(r *ghttp.Request) {
  68. upFiles := r.GetUploadFiles("file")
  69. infos, err := adapter.Upload.UpImgs(upFiles)
  70. if err != nil {
  71. c.FailJson(true, r, "上传失败,"+err.Error())
  72. }
  73. res := g.Map{
  74. "fileInfos": infos,
  75. }
  76. c.SusJson(true, r, "上传成功", res)
  77. }
  78. // @Summary 单文件上传
  79. // @Description 单文件上传
  80. // @Tags 公共
  81. // @Param file body string true "file"
  82. // @Success 0 {object} c.Response "{"code": 200, "data": [...]}"
  83. // @Router /system/upload/upFile [post]
  84. // @Security
  85. func (c *upload) UpFile(r *ghttp.Request) {
  86. upFile := r.GetUploadFile("file")
  87. info, err := adapter.Upload.UpFile(upFile)
  88. if err != nil {
  89. c.FailJson(true, r, "上传失败,"+err.Error())
  90. }
  91. res := g.Map{
  92. "fileInfo": info,
  93. }
  94. c.SusJson(true, r, "上传成功", res)
  95. }
  96. // @Summary 批量上传文件
  97. // @Description 批量上传文件
  98. // @Tags 公共
  99. // @Param file body string true "file"
  100. // @Success 0 {object} c.Response "{"code": 200, "data": [...]}"
  101. // @Router /system/upload/upFiles [post]
  102. // @Security
  103. func (c *upload) UpFiles(r *ghttp.Request) {
  104. upFiles := r.GetUploadFiles("file")
  105. infos, err := adapter.Upload.UpFiles(upFiles)
  106. if err != nil {
  107. c.FailJson(true, r, "上传失败,"+err.Error())
  108. }
  109. res := g.Map{
  110. "fileInfos": infos,
  111. }
  112. c.SusJson(true, r, "上传成功", res)
  113. }