123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- package controllers
- import (
- "eta/eta_forum_admin/models"
- "eta/eta_forum_admin/services"
- "eta/eta_forum_admin/utils"
- "fmt"
- "os"
- "path"
- "time"
- )
- type ReportController struct {
- BaseAuthController
- }
- // @Title 图片上传
- // @Description 图片上传接口
- // @Param File query file true "文件"
- // @Success 200 上传成功
- // @router /uploadImg [post]
- func (this *ReportController) UploadImg() {
- //br := new(models.BaseResponse).Init()
- var err error
- defer func() {
- if err != nil {
- utils.FileLog.Info("UploadImg", "err", err)
- }
- }()
- f, h, err := this.GetFile("file")
- if err != nil {
- err = fmt.Errorf("获取文件失败,Err:%v", err)
- return
- }
- defer f.Close() //关闭上传文件
- ext := path.Ext(h.Filename)
- dateDir := time.Now().Format("20060102")
- uploadDir := utils.STATIC_DIR + "hongze/" + dateDir
- err = os.MkdirAll(uploadDir, utils.DIR_MOD)
- if err != nil {
- err = fmt.Errorf("创建文件夹失败,Err:%v", err)
- return
- }
- randStr := utils.GetRandStringNoSpecialChar(28)
- fileName := randStr + ext
- fpath := uploadDir + "/" + fileName
- err = this.SaveToFile("file", fpath)
- if err != nil {
- err = fmt.Errorf("保存文件失败,Err:%v", err)
- return
- }
- defer func() {
- os.Remove(fpath)
- }()
- // 上传文件
- resourceUrl := ``
- ossClient := services.NewOssClient()
- if ossClient == nil {
- err = fmt.Errorf("初始化OSS服务失败")
- return
- }
- // 上传到阿里云
- ossDir := utils.UploadDir + "images/"
- savePath := ossDir + time.Now().Format("200601/20060102/") + fileName
- resourceUrl, err = ossClient.UploadFile(fileName, fpath, savePath)
- if err != nil {
- err = fmt.Errorf("文件上传失败,Err:%v", err)
- return
- }
- item := new(models.Resource)
- item.ResourceUrl = resourceUrl
- item.ResourceType = 1
- item.CreateTime = time.Now()
- newId, err := models.AddResource(item)
- if err != nil {
- err = fmt.Errorf("保存资源失败,Err:%v", err)
- return
- }
- resp := new(models.ResourceResp)
- resp.Id = newId
- resp.ResourceUrl = resourceUrl
- this.Data["json"] = map[string]string{"link": resourceUrl}
- this.ServeJSONOther()
- }
|