计算文件的md5值和保存文件


public class saveExcle : IHttpHandler {

public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";

HttpPostedFile hpf=context.Request.Files[0];
string ext = Path.GetExtension(hpf.FileName);

if (ext==".xls")
{
string name = hpf.FileName;
string dir = "/UplaodExcle/" + DateTime.Now.Year + "/" + DateTime.Now.Month + "/" + DateTime.Now.Day + "/";
System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(context.Server.MapPath(dir)));//新建文件夹.
//需要对上传的文件进行重命名.(根据上传图片的MD5值进行命名,并且构建好完整的文件存放路径)
string fullDir = dir + GetStreamMD5(hpf.InputStream) + ext;
string url = fullDir;
hpf.SaveAs(context.Server.MapPath(fullDir));//保存
context.Response.Write(fullDir);
}
}

public bool IsReusable {
get {
return false;
}
}

/// <summary>
/// 计算文件的MD5值
/// </summary>
/// <param name="filepath"></param>
/// <returns></returns>
public String GetStreamMD5(System.IO.Stream stream)
{
string strResult = "";
string strHashData = "";
byte[] arrbytHashValue;
System.Security.Cryptography.MD5CryptoServiceProvider oMD5Hasher =
new System.Security.Cryptography.MD5CryptoServiceProvider();
arrbytHashValue = oMD5Hasher.ComputeHash(stream); //计算指定Stream 对象的哈希值
//由以连字符分隔的十六进制对构成的String,其中每一对表示value 中对应的元素;例如“F-2C-4A”
strHashData = System.BitConverter.ToString(arrbytHashValue);
//替换-
strHashData = strHashData.Replace("-", "");
strResult = strHashData;
return strResult;
}
}

转载于:https://www.cnblogs.com/fierceeagle/p/3507345.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值