83 lines
1.7 KiB
Go
83 lines
1.7 KiB
Go
package upload
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/go-pripro/shop/pkg/file"
|
|
"github.com/go-pripro/shop/pkg/logging"
|
|
"github.com/go-pripro/shop/pkg/setting"
|
|
"github.com/go-pripro/shop/pkg/util"
|
|
"log"
|
|
"mime/multipart"
|
|
"os"
|
|
"path"
|
|
"strings"
|
|
)
|
|
|
|
// 获取图片完整访问URL
|
|
func GetImageFullUrl(name string) string {
|
|
return setting.AppSetting.ImagePrefixUrl + "/" + GetImagePath() + name
|
|
}
|
|
|
|
// 获取图片名称
|
|
func GetImageName(name string) string {
|
|
ext := path.Ext(name)
|
|
fileName := strings.TrimSuffix(name, ext)
|
|
fileName = util.EncodeMD5(fileName)
|
|
|
|
return fileName + ext
|
|
}
|
|
|
|
// 获取图片路径
|
|
func GetImagePath() string {
|
|
return setting.AppSetting.ImageSavePath
|
|
}
|
|
|
|
// 获取图片完整路径
|
|
func GetImageFullPath() string {
|
|
return setting.AppSetting.RuntimeRootPath + GetImagePath()
|
|
}
|
|
|
|
// 检查图片后缀
|
|
func CheckImageExt(fileName string) bool {
|
|
ext := file.GetExt(fileName)
|
|
for _, allowExt := range setting.AppSetting.ImageAllowExts {
|
|
if strings.ToUpper(allowExt) == strings.ToUpper(ext) {
|
|
return true
|
|
}
|
|
}
|
|
|
|
return false
|
|
}
|
|
|
|
// 检查图片大小
|
|
func CheckImageSize(f multipart.File) bool {
|
|
size, err := file.GetSize(f)
|
|
logging.Info(size)
|
|
if err != nil {
|
|
log.Println(err)
|
|
logging.Warn(err)
|
|
return false
|
|
}
|
|
|
|
return size <= setting.AppSetting.ImageMaxSize*1024*1024
|
|
}
|
|
|
|
// 检查图片
|
|
func CheckImage(src string) error {
|
|
dir, err := os.Getwd()
|
|
if err != nil {
|
|
return fmt.Errorf("os.Getwd err:%v", err)
|
|
}
|
|
|
|
err = file.IsNotExistMkDir(dir + "/" + src)
|
|
if err != nil {
|
|
return fmt.Errorf("file.IsNotExistMkDir err: %v", err)
|
|
}
|
|
|
|
perm := file.CheckPermission(src)
|
|
if perm == true {
|
|
return fmt.Errorf("file.CheckPermission Permission denied src: %s", src)
|
|
}
|
|
|
|
return nil
|
|
} |