首页 新闻 会员 周边 捐助

在silverlight4中实现文件上传,如何完成加入MD5值的判断?加急!!!

0
悬赏园豆:200 [待解决问题]

要加入数据库,上传文件前先判断下数据库里面的是否有该MD5值的文件,再上传,是否有高人懂的,急!我用的是vs2010,装的新的版本silverlight4,所用语言是C#,如果有人懂,请加QQ:378553531,加时请说明silverlight

chinaliyanli的主页 chinaliyanli | 初学一级 | 园豆:0
提问于:2011-05-02 00:34
< >
分享
所有回答(2)
0

/// <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值进行比较是非常不合适的。

醉卧天南 | 园豆:369 (菜鸟二级) | 2011-05-03 17:45
0

  MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();

在sileverlight里面没有!

Near_wen | 园豆:11 (初学一级) | 2011-06-22 10:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册