Browse Source

产品上传图片

kobe6258 5 months ago
parent
commit
13cbc8491c
2 changed files with 88 additions and 0 deletions
  1. 79 0
      controllers/product.go
  2. 9 0
      routers/commentsRouter.go

+ 79 - 0
controllers/product.go

@@ -13,6 +13,8 @@ import (
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"github.com/shopspring/decimal"
 	"math/rand"
+	"os"
+	"path"
 	"strconv"
 	"strings"
 	"sync"
@@ -681,3 +683,80 @@ func (this *ProductController) EditProduct() {
 	br.Msg = "编辑产品成功"
 	return
 }
+
+// UploadFile @Title 上传图片
+// @Description 上传图片
+// @Param   File   query   file  true       "文件"
+// @Success 200 {object} models.ReportAuthorResp
+// @router /uploadFile [post]
+func (this *ProductController) UploadFile() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	f, h, err := this.GetFile("File")
+	if err != nil {
+		br.Msg = "获取资源信息失败"
+		br.ErrMsg = "获取资源信息失败,Err:" + err.Error()
+		return
+	}
+	defer f.Close()
+	size, err := strconv.Atoi(utils.UPLOAD_IMG_SIZE)
+	if err != nil {
+		size = 100
+	}
+	if h.Size > 1024*1024*int64(size) {
+		br.Msg = fmt.Sprintf("图片大小不能超过%dK", size)
+		br.ErrMsg = "图片上传失败,Err:" + err.Error()
+		return
+	}
+	ext := path.Ext(h.Filename)
+
+	dateDir := time.Now().Format("20060102")
+	uploadDir := utils.STATIC_DIR + "ht/product" + dateDir
+	err = os.MkdirAll(uploadDir, utils.DIR_MOD)
+	if err != nil {
+		br.Msg = "存储目录创建失败"
+		br.ErrMsg = "存储目录创建失败,Err:" + err.Error()
+		return
+	}
+	randStr := utils.GetRandStringNoSpecialChar(28)
+	fileName := randStr + ext
+	fpath := uploadDir + "/" + fileName
+	err = this.SaveToFile("File", fpath)
+	if err != nil {
+		br.Msg = "图片上传失败"
+		br.ErrMsg = "图片上传失败,Err:" + err.Error()
+		return
+	}
+	audioUploadDir := utils.RESOURCE_DIR + "img/"
+	savePdfToOssPath := audioUploadDir + time.Now().Format("200601/20060102/")
+	audioName := utils.GetRandStringNoSpecialChar(28)
+	savePdfToOssPath += audioName + ext
+
+	defer func() {
+		err = os.Remove(fpath)
+		fmt.Sprintf("删除文件失败:%v", err)
+	}()
+	ossClient := services.NewOssClient()
+	if ossClient == nil {
+		br.Msg = "图片上传失败"
+		br.ErrMsg = "初始化OSS服务失败"
+		return
+	}
+	mp3Url, err := ossClient.UploadFile("", fpath, savePdfToOssPath)
+	if err != nil {
+		br.Msg = "图片上传失败"
+		br.ErrMsg = "图片上传失败,Err:" + err.Error()
+		return
+	}
+	base := path.Base(h.Filename)
+	resp := new(response.MediaUploadResp)
+	resp.Url = mp3Url
+	resp.FileName = base
+	br.Data = resp
+	br.Msg = "上传成功"
+	br.Ret = 200
+	br.Success = true
+}

+ 9 - 0
routers/commentsRouter.go

@@ -396,6 +396,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_mini_crm_ht/controllers:ProductController"] = append(beego.GlobalControllerRouter["eta/eta_mini_crm_ht/controllers:ProductController"],
+        beego.ControllerComments{
+            Method: "UploadFile",
+            Router: `/uploadFile`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_mini_crm_ht/controllers:RiskConfigController"] = append(beego.GlobalControllerRouter["eta/eta_mini_crm_ht/controllers:RiskConfigController"],
         beego.ControllerComments{
             Method: "GetCustomerRiskList",