|
@@ -1,54 +0,0 @@
|
|
|
-package utils
|
|
|
-
|
|
|
-import (
|
|
|
- "gin-vue-admin/global"
|
|
|
- "go.uber.org/zap"
|
|
|
- "io"
|
|
|
- "mime/multipart"
|
|
|
- "os"
|
|
|
- "path"
|
|
|
- "strings"
|
|
|
- "time"
|
|
|
-)
|
|
|
-
|
|
|
-func UploadAvatarLocal(file *multipart.FileHeader) (err error, localPath string, key string) {
|
|
|
- // 读取文件后缀
|
|
|
- ext := path.Ext(file.Filename)
|
|
|
- // 读取文件名并加密
|
|
|
- fileName := strings.TrimSuffix(file.Filename, ext)
|
|
|
- fileName = MD5V([]byte(fileName))
|
|
|
- // 拼接新文件名
|
|
|
- lastName := fileName + "_" + time.Now().Format("20060102150405") + ext
|
|
|
- // 读取全局变量的定义路径
|
|
|
- savePath := global.GVA_CONFIG.LocalUpload.AvatarPath
|
|
|
- // 尝试创建此路径
|
|
|
- err = os.MkdirAll(savePath, os.ModePerm)
|
|
|
- if err != nil{
|
|
|
- global.GVA_LOG.Error("upload local file fail:", zap.Any("err", err))
|
|
|
- return err, "", ""
|
|
|
- }
|
|
|
- // 拼接路径和文件名
|
|
|
- dst := savePath + "/" + lastName
|
|
|
- // 下面为上传逻辑
|
|
|
- // 打开文件 defer 关闭
|
|
|
- src, err := file.Open()
|
|
|
- if err != nil {
|
|
|
- global.GVA_LOG.Error("upload local file fail:", zap.Any("err", err))
|
|
|
- return err, "", ""
|
|
|
- }
|
|
|
- defer src.Close()
|
|
|
- // 创建文件 defer 关闭
|
|
|
- out, err := os.Create(dst)
|
|
|
- if err != nil {
|
|
|
- global.GVA_LOG.Error("upload local file fail:", zap.Any("err", err))
|
|
|
- return err, "", ""
|
|
|
- }
|
|
|
- defer out.Close()
|
|
|
- // 传输(拷贝)文件
|
|
|
- _, err = io.Copy(out, src)
|
|
|
- if err != nil {
|
|
|
- global.GVA_LOG.Error("upload local file fail:", zap.Any("err", err))
|
|
|
- return err, "", ""
|
|
|
- }
|
|
|
- return nil, dst, lastName
|
|
|
-}
|