This commit is contained in:
xxj
2026-04-02 18:00:31 +08:00
parent 9aec6824e7
commit 2220af33c8
+29
View File
@@ -1,6 +1,8 @@
package myfile
import (
"crypto/md5"
"encoding/hex"
"fmt"
"io"
"mime/multipart"
@@ -136,3 +138,30 @@ func (o *myFile) SaveOrigin(file *multipart.FileHeader, dir string) (string, err
_, err = io.Copy(out, src)
return path.Join(o.path, dir, filename), err
}
// GetFileMD5 获取文件的MD5值
// filePath: 文件路径
// 返回: MD5字符串, 错误信息
func GetFileMD5(filePath string) (string, error) {
// 打开文件
file, err := os.Open(filePath)
if err != nil {
return "", err
}
defer file.Close() // 函数结束时关闭文件
// 创建MD5哈希对象
hash := md5.New()
// 分块读取文件并写入哈希器(高效处理大文件)
_, err = io.Copy(hash, file)
if err != nil {
return "", err
}
// 计算哈希值并转为十六进制字符串
md5Bytes := hash.Sum(nil)
md5Str := hex.EncodeToString(md5Bytes)
return md5Str, nil
}