123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- package utils
- import (
- "gin-vue-admin/global"
- "go.uber.org/zap"
- "io"
- "mime/multipart"
- "os"
- "path"
- "strings"
- "time"
- )
- func UploadFileLocal(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.Local.Path
-
- 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
-
-
- src, err := file.Open()
- if err != nil {
- global.GVA_LOG.Error("upload local file fail:", zap.Any("err", err))
- return err, "", ""
- }
- defer src.Close()
-
- 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
- }
|