1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- package controllers
-
- import (
- "errors"
- "strconv"
- "time"
- "wechat-conf/utils"
-
- "net/http"
- "net/url"
- )
-
- // FileUpload 文件上传
- func (c *BaseController) FileUpload() {
- file, err := c.uploadFileToOSS("file")
- if err != nil {
- c.ResponseError(err, http.StatusInternalServerError)
- }
-
- c.ResponseJSON(map[string]interface{}{
- "url": file,
- })
- }
-
- func (c *BaseController) uploadFileToOSS(field string) (string, error) {
- aliConf, ok := c.Configer[AliYunConf]
- if !ok {
- return "", errors.New("没有找到阿里云相关配置")
- }
-
- endpoint := aliConf.String("oss::Endpoint")
- accessKeyID := aliConf.String("oss::AccessKeyId")
- accessKeySecret := aliConf.String("oss::AccessKeySecret")
- bucket := aliConf.String("oss::Bucket")
-
- aliCli, err := utils.GetOssClient(endpoint, accessKeyID, accessKeySecret)
- if err != nil {
- return "", err
- }
-
- fNameExtra := strconv.FormatInt(time.Now().Unix(), 10)
-
- fileURL, err := utils.UploadFileToBucket(aliCli, c.Ctx.Request, bucket, field, fNameExtra)
- if err != nil {
- return "", err
- }
-
- return fileURL, nil
- }
-
- // UploadBase64Image Upload base64-image to ali-oss
- // @Title Upload image to ali-oss
- // @Description 上传base64图片到阿里云
- // @Param UpImgStr form string true "图片控件name"
- // @Success 200 { Url } 图片URL
- // @Failure >300 error message
- func (c *BaseController) UploadBase64Image() {
- base64Str, err := url.QueryUnescape(c.GetString("base64str"))
- if err != nil {
- c.ResponseError(utils.LogError("上传 Base64 图片失败", err))
- }
-
- imgURL, err := c.uploadStringToAliOSS(base64Str)
- if err != nil {
- c.ResponseError(err)
- }
-
- resp := map[string]interface{}{
- "url": imgURL,
- }
-
- c.ResponseJSON(resp)
- }
-
- // uploadStringToAliOSS 上传文件到阿里云
- func (c *BaseController) uploadStringToAliOSS(fStr string) (string, error) {
- aliConf, ok := c.Configer[AliYunConf]
- if !ok {
- return "", errors.New("没有找到阿里云相关配置")
- }
-
- endpoint := aliConf.String("oss::Endpoint")
- accessKeyID := aliConf.String("oss::AccessKeyId")
- accessKeySecret := aliConf.String("oss::AccessKeySecret")
- bucket := aliConf.String("oss::Bucket")
-
- aliCli, err := utils.GetOssClient(endpoint, accessKeyID, accessKeySecret)
- if err != nil {
- return "", utils.LogError("配置阿里云客户端失败", err)
- }
-
- fileURL, err := utils.UploadStringToBucket(aliCli, bucket, fStr)
- if err != nil {
- return "", utils.LogError("上传文件到阿里云失败", err)
- }
-
- return fileURL, nil
- }
|