我有一个形式为IFormFile
. 我需要计算这个文件的校验和。我怎样才能做到这一点。
public string FindChecksum (IFormFile file){
// How to calculate the checkSum
return "THE CHECKSUM";
}
我会做这样的事情。
我假设您在 IFromFile 文件参数中获取数据。
public IActionResult IndexPost(IFormFile file)
{
Stream st = file.OpenReadStream();
MemoryStream mst = new MemoryStream();
st.CopyTo(mst);
return Content(ToMD5Hash(mst.ToArray()));
}
public static string ToMD5Hash(byte[] bytes)
{
if (bytes == null || bytes.Length == 0)
return null;
using (var md5 = MD5.Create())
{
return string.Join("", md5.ComputeHash(bytes).Select(x => x.ToString("X2")));
}
}
另一种选择,以防有人发现它有帮助:
public string CreatePackage(string packageType, IFormFile package)
{
var hash = "";
using (var md5 = MD5.Create())
{
using (var streamReader = new StreamReader(package.OpenReadStream()))
{
hash = BitConverter.ToString(md5.ComputeHash(streamReader.BaseStream)).Replace("-", "");
}
}
return hash;
}