zoukankan      html  css  js  c++  java
  • 计算文件的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;
    }
    }

  • 相关阅读:
    C/C++常用的时间函数
    二维数组动态申请空间以及二维数组函数传参问题
    vc多线程编程
    [转载]_tmain main wmain WinMain
    using namespace std 解释
    [转载]C运行时库函数和API函数的区别和联系
    ZOJ 1013 Great Equipment(DP)
    c++ 运算符优先级表
    c语言输入的一些问题
    c\c++ 随机数函数
  • 原文地址:https://www.cnblogs.com/fierceeagle/p/3507345.html
Copyright © 2011-2022 走看看