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;
    }
    }

  • 相关阅读:
    flask框架中SQLAlchemy相关
    flask使用外部存储模块之数据库的使用
    flask的基础知识
    docker的下载和使用
    rbac权限管理系统的学习
    redis数据库之五种数据类型的简单操作
    使用django框架进行web项目开发需要了解的知识
    django项目常用外部模块下载和使用
    pwn学习之dl_resolve学习篇
    验证docker的Redis镜像也存在未授权访问漏洞
  • 原文地址:https://www.cnblogs.com/fierceeagle/p/3507345.html
Copyright © 2011-2022 走看看