有没有办法知道用户是否正在上传之前已上传过的文件。
这不是比较文件名。这是用户重命名文件的情况。
方案
答案 0 :(得分:2)
您可以对首次提交的文件执行校验和,将此校验和存储在具有文件名的数据表中。当用户再次提交重命名的文件时,您再次计算校验和,并在数据库中搜索校验和是否已存在。
这种解决方案的缺点在于校验和的唯一性 通过这个例子,我认为你很有可能得到一个独特的校验和 (期待被剥夺)
public string GetChecksum(string filePath, HashAlgorithm algorithm)
{
using (var stream = new BufferedStream(File.OpenRead(filePath), 100000))
{
HashAlgorithm SHA512 = new SHA512Managed();
byte[] hash = SHA512.ComputeHash(stream);
return BitConverter.ToString(hash).Replace("-", String.Empty);
}
}