upload.go 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  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. // CkEditorUp
  33. // @Summary CkEditor编辑器上传附件
  34. // @Description CkEditor编辑器上传附件
  35. // @Tags 公共
  36. // @Param upFile body string true "upFile"
  37. // @Success 0 {object} library.Response "{"code": 200, "data": [...]}"
  38. // @Router /system/upload/ckEditorUp [post]
  39. // @Security
  40. func (c *upload) CkEditorUp(r *ghttp.Request) {
  41. upFile := r.GetUploadFile("upload")
  42. fType := gstr.ToLower(r.GetString("type"))
  43. var info *adapter.FileInfo
  44. var err error
  45. if fType == "images" {
  46. info, err = adapter.Upload.UpImg(upFile)
  47. } else if fType == "files" {
  48. info, err = adapter.Upload.UpFile(upFile)
  49. }
  50. if err != nil {
  51. r.Response.WriteJson(g.Map{"error": g.Map{"message": "上传失败," + err.Error(), "number": 105}})
  52. } else {
  53. parseInfo, _ := url.Parse(r.GetUrl())
  54. var fileUrl = info.FileUrl
  55. if !gregex.IsMatchString("^http", info.FileUrl) {
  56. fileUrl = parseInfo.Scheme + "://" + parseInfo.Host + "/" + info.FileUrl
  57. }
  58. r.Response.WriteJson(g.Map{"fileName": info.FileName, "uploaded": 1, "url": fileUrl})
  59. }
  60. }
  61. // UpImgs
  62. // @Summary 批量上传图片
  63. // @Description 批量上传图片
  64. // @Tags 公共
  65. // @Param file body string true "file"
  66. // @Success 0 {object} library.Response "{"code": 200, "data": [...]}"
  67. // @Router /system/upload/upImgs [post]
  68. // @Security
  69. func (c *upload) UpImgs(r *ghttp.Request) {
  70. upFiles := r.GetUploadFiles("file")
  71. infos, err := adapter.Upload.UpImgs(upFiles)
  72. if err != nil {
  73. c.FailJson(true, r, "上传失败,"+err.Error())
  74. }
  75. res := g.Map{
  76. "fileInfos": infos,
  77. }
  78. c.SusJson(true, r, "上传成功", res)
  79. }
  80. // UpFile
  81. // @Summary 单文件上传
  82. // @Description 单文件上传
  83. // @Tags 公共
  84. // @Param file body string true "file"
  85. // @Success 0 {object} library.Response "{"code": 200, "data": [...]}"
  86. // @Router /system/upload/upFile [post]
  87. // @Security
  88. func (c *upload) UpFile(r *ghttp.Request) {
  89. upFile := r.GetUploadFile("file")
  90. info, err := adapter.Upload.UpFile(upFile)
  91. if err != nil {
  92. c.FailJson(true, r, "上传失败,"+err.Error())
  93. }
  94. res := g.Map{
  95. "fileInfo": info,
  96. }
  97. c.SusJson(true, r, "上传成功", res)
  98. }
  99. // UpFiles
  100. // @Summary 批量上传文件
  101. // @Description 批量上传文件
  102. // @Tags 公共
  103. // @Param file body string true "file"
  104. // @Success 0 {object} library.Response "{"code": 200, "data": [...]}"
  105. // @Router /system/upload/upFiles [post]
  106. // @Security
  107. func (c *upload) UpFiles(r *ghttp.Request) {
  108. upFiles := r.GetUploadFiles("file")
  109. infos, err := adapter.Upload.UpFiles(upFiles)
  110. if err != nil {
  111. c.FailJson(true, r, "上传失败,"+err.Error())
  112. }
  113. res := g.Map{
  114. "fileInfos": infos,
  115. }
  116. c.SusJson(true, r, "上传成功", res)
  117. }