|
@@ -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
|
|
|
+}
|