要加入数据库,上传文件前先判断下数据库里面的是否有该MD5值的文件,再上传,是否有高人懂的,急!我用的是vs2010,装的新的版本silverlight4,所用语言是C#,如果有人懂,请加QQ:378553531,加时请说明silverlight
/// <summary>
/// 获取流MD5值字符串函数
/// </summary>
/// <param name="stream">流</param>
/// <returns>MD5值字符串</returns>
public static string GetMD5StringByStream(Stream stream)
{
string MD5值字符串 = string.Empty;
try
{
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
md5.ComputeHash(stream);
stream.Close();
byte[] array = md5.Hash;
StringBuilder builder = new StringBuilder(32);
foreach (var v in array)
{
builder.Append(v.ToString("X2"));
}
MD5值字符串 = builder.ToString();
}
catch (Exception err)
{
Console.WriteLine("GetMD5StringByStream Error,Info:{0}", err.Message);
}
return MD5值字符串;
}
1、首先获取上传文件的流,MemoryStream或者FileStream。
2、使用这段方法生成md5值字符串。
3、查询数据库中是否存在该md5值。
4、决定是否上传。
关键点:数据库中一定要有字段保存需要查询验证文件的md5值,否则需要从数据库中读取文件再生成MD5值进行比较是非常不合适的。
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
在sileverlight里面没有!