0
在Go中,獲取* multipart.File的md5的正確方法是什麼?如何從multipart獲取md5文件
這裏是我的代碼retuened錯了MD5:
// GetFileMd5 count file's md5
// return md5 string
func GetFileMd5(file multipart.File) (md5Str string) {
h := md5.New()
if _, err := file.Seek(0, 0); err != nil {
log.Error("Get file md5 error: %v", err)
}
if _, err := io.Copy(h, file); err != nil {
log.Error("Get file md5 error: %v", err)
}
md5Str = hex.EncodeToString(h.Sum(nil))
log.Debug("File md5 is: %s", md5Str)
return md5Str
}
你的代碼看起來不錯,你怎麼會錯誤的MD5?在你的代碼中,只需'return'就足夠了,你可以刪除變量名。 – jeevatkm
嗨@jeevatkm,如果我將multipart.File更改爲File,並刪除file.Seek(0,0),它將返回正確的md5。所以我很困惑,如果我使用方法Seek正確。你說得對,這個函數中的變量名可以省略。 –
其實你也可以去掉Seek呼叫。如果您從請求中獲取文件,將它傳遞給此方法,它將始終爲零。 – jeevatkm