pixel
4 years ago
5 changed files with 10 additions and 108 deletions
-
3server/main.go
-
10server/utils/array_to_string.go
-
40server/utils/des.go
-
11server/utils/fmt_plus.go
-
54server/utils/upload_avatar_local.go
@ -1,10 +0,0 @@ |
|||
package utils |
|||
|
|||
import ( |
|||
"fmt" |
|||
"strings" |
|||
) |
|||
|
|||
func ArrayToString(array []interface{}) string { |
|||
return strings.Replace(strings.Trim(fmt.Sprint(array), "[]"), " ", ",", -1) |
|||
} |
@ -1,40 +0,0 @@ |
|||
package utils |
|||
|
|||
import ( |
|||
"bytes" |
|||
"crypto/cipher" |
|||
"crypto/des" |
|||
) |
|||
|
|||
func padding(src []byte, blocksize int) []byte { |
|||
n := len(src) |
|||
padnum := blocksize - n%blocksize |
|||
pad := bytes.Repeat([]byte{byte(padnum)}, padnum) |
|||
dst := append(src, pad...) |
|||
return dst |
|||
} |
|||
|
|||
func unpadding(src []byte) []byte { |
|||
n := len(src) |
|||
unpadnum := int(src[n-1]) |
|||
dst := src[:n-unpadnum] |
|||
return dst |
|||
} |
|||
|
|||
func EncryptDES(src []byte) []byte { |
|||
key := []byte("qimiao66") |
|||
block, _ := des.NewCipher(key) |
|||
src = padding(src, block.BlockSize()) |
|||
blockmode := cipher.NewCBCEncrypter(block, key) |
|||
blockmode.CryptBlocks(src, src) |
|||
return src |
|||
} |
|||
|
|||
func DecryptDES(src []byte) []byte { |
|||
key := []byte("qimiao66") |
|||
block, _ := des.NewCipher(key) |
|||
blockmode := cipher.NewCBCDecrypter(block, key) |
|||
blockmode.CryptBlocks(src, src) |
|||
src = unpadding(src) |
|||
return src |
|||
} |
@ -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 |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue