123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- package shanghu
- import (
- "context"
- "duoduo/apis/shanghu/models"
- "duoduo/conf"
- "duoduo/tools/app"
- "fmt"
- "github.com/gin-gonic/gin"
- "github.com/qiniu/go-sdk/v7/auth/qbox"
- "github.com/qiniu/go-sdk/v7/storage"
- "time"
- )
- func UploadPicture(c *gin.Context) {
- var inData models.UploadPictureRequest
- var outData models.UploadPictureReply
- confIni, err := conf.ConnIni()
- if err != nil {
- app.Error(c, 400, err, err.Error())
- return
- }
- err = c.ShouldBindJSON(&inData)
- if err != nil {
- app.Error(c, 400, err, err.Error())
- return
- }
- for i := 0; i < len(inData.Picture); i++ {
- //fmt.Println(inData.Pictures[i])
- //上传图片
- timeUnixNano := time.Now().UnixNano() //单位纳秒
- fileName := fmt.Sprintf("%d.jpg", timeUnixNano)
- //七牛云上传图片
- bucket := "imgxx"
- key := "shanghuka/" + inData.UserCode + "/" + time.Now().Format(time.DateOnly) + "/" + fileName
- putPolicy := storage.PutPolicy{
- Scope: bucket,
- }
- mac := qbox.NewMac(confIni.MustValue("ly-qn", "access_key"), confIni.MustValue("ly-qn", "secret_key"))
- upToken := putPolicy.UploadToken(mac)
- cfg := storage.Config{}
- // 空间对应的机房
- cfg.Zone = &storage.ZoneHuanan
- // 是否使用https域名
- cfg.UseHTTPS = false
- // 上传是否使用CDN上传加速
- cfg.UseCdnDomains = false
- // 构建表单上传的对象
- baseUploader := storage.NewBase64Uploader(&cfg)
- ret := storage.PutRet{}
- //data, err := base64.RawStdEncoding.DecodeString(inData.Pictures[i])
- //if err != nil {
- // app.Error(c, 500, err, "上传图片失败")
- // return
- //}
- err = baseUploader.Put(context.Background(), &ret, upToken, key, []byte(inData.Picture[i]), nil)
- if err != nil {
- app.Error(c, 500, err, "上传图片失败")
- return
- }
- outData.Picture = append(outData.Picture, "http://lingyang.shisanmiao.com/"+key)
- }
- app.OK(c, outData, app.Success)
- }
|