package svc import ( "applet/app/utils" "fmt" "github.com/syyongx/php2go" "strings" "github.com/gin-gonic/gin" ) // ImageFormat is 格式化 图片 func ImageFormat(c *gin.Context, name string) string { if strings.Contains(name, "https:") || strings.Contains(name, "http:") { return name } scheme := SysCfgGet(c, "file_bucket_scheme") domain := SysCfgGet(c, "file_bucket_host") name, _ = php2go.URLDecode(name) name = php2go.URLEncode(name) return fmt.Sprintf("%s://%s/%s", scheme, domain, name) } // OffImageFormat is 格式化官方 图片 func OffImageFormat(c *gin.Context, name string) string { if strings.Contains(name, "https:") || strings.Contains(name, "http:") { return name } name, _ = php2go.URLDecode(name) name = php2go.URLEncode(name) return fmt.Sprintf("%s://%s/%s", "http", "ossn.izhim.net", name) } // ImageBucket is 获取域名 func ImageBucket(c *gin.Context) (string, string) { return SysCfgGet(c, "file_bucket_scheme"), SysCfgGet(c, "file_bucket_host") } // ImageFormatWithBucket is 格式化成oss 域名 func ImageFormatWithBucket(scheme, domain, name string) string { if strings.Contains(name, "http") || name == "" { return name } name, _ = php2go.URLDecode(name) name = php2go.URLEncode(name) return fmt.Sprintf("%s://%s/%s", scheme, domain, name) } // ImageBucketNew is 获取域名 func ImageBucketNew(c *gin.Context) (string, string, string, map[string]string) { var list = make(map[string]string, 0) for i := 1; i < 10; i++ { keys := "file_bucket_sub_host" + utils.IntToStr(i) list[keys] = SysCfgGet(c, keys) } return SysCfgGet(c, "file_bucket_scheme"), SysCfgGet(c, "file_bucket_host"), SysCfgGet(c, "file_bucket_sub_host"), list } // ImageFormatWithBucket is 格式化成oss 域名 func ImageFormatWithBucketNew(scheme, domain, subDomain string, moreSubDomain map[string]string, name string) string { if strings.Contains(name, "http") { return name } if strings.Contains(name, "{{subhost}}") && subDomain != "" { //读副域名 有可能是其他平台的 domain = subDomain } //为了兼容一些客户自营商城导到不同系统 并且七牛云不一样 for i := 1; i < 10; i++ { keys := "file_bucket_sub_host" + utils.IntToStr(i) if strings.Contains(name, "{{subhost"+utils.IntToStr(i)+"}}") && moreSubDomain[keys] != "" { domain = moreSubDomain[keys] } name = strings.ReplaceAll(name, "{{subhost"+utils.IntToStr(i)+"}}", "") } name = strings.ReplaceAll(name, "{{host}}", "") name = strings.ReplaceAll(name, "{{subhost}}", "") name, _ = php2go.URLDecode(name) name = php2go.URLEncode(name) return fmt.Sprintf("%s://%s/%s", scheme, domain, name) }