zoukankan      html  css  js  c++  java
  • asp.net文件下载

     1       protected void btn_Down(object sender, EventArgs e)
     2         {
     3             string filePath = Server.MapPath("/TradeLog/" + txtDate.Text.Trim());
     4             if (!downBeforeValidation(filePath))
     5                 return;
     6             dlZipDir(filePath, txtDate.Text);
     7         }    
     8 
     9        /// <summary>
    10         /// 下载前验证
    11         /// </summary>
    12         /// <param name="filePath">文件路径</param>
    13         /// <returns></returns>
    14         private bool downBeforeValidation(string filePath)
    15         {
    16             //判断密码是否正确
    17             string downPassWord = WebConfigurationManager.AppSettings["downPassWord"];
    18             if (string.IsNullOrEmpty(txtPassWord.Text) || txtPassWord.Text.Trim() != downPassWord)
    19             {
    20                 Response.Write("<script>alert('密码错误或为空')</script>");
    21                 return false;
    22             }
    23             //判断文件是否存在
    24 
    25             if (!Directory.Exists(filePath))
    26             {
    27                 Response.Write("<script>alert('目录不存在')</script>");
    28                 return false;
    29             }
    30             return true;
    31         }
    32 
    33       /// <summary>
    34         /// 全部变量
    35         /// </summary>
    36         ZipOutputStream zos = null;
    37         String strBaseDir = "";
    38         /// <summary>
    39         /// 下载文件
    40         /// </summary>
    41         /// <param name="strPath">路径</param>
    42         /// <param name="strFileName">下载后默认显示文件名称</param>
    43         void dlZipDir(string strPath, string strFileName)
    44         {
    45             MemoryStream ms = null;
    46             Response.ContentType = "application/octet-stream";
    47             strFileName = HttpUtility.UrlEncode(strFileName).Replace('+', ' ');
    48             Response.AddHeader("Content-Disposition", "attachment;   filename=" + strFileName + ".zip");
    49             ms = new MemoryStream();
    50             zos = new ZipOutputStream(ms);
    51             strBaseDir = strPath + "\";
    52             addZipEntry(strBaseDir);
    53             zos.Finish();
    54             zos.Close();
    55             Response.Clear();
    56             Response.BinaryWrite(ms.ToArray());
    57             Response.End();
    58         }
    59 
    60      /// <summary>
    61         /// 生成压缩文件
    62         /// </summary>
    63         /// <param name="PathStr"></param>
    64         void addZipEntry(string PathStr)
    65         {
    66             DirectoryInfo di = new DirectoryInfo(PathStr);
    67             foreach (DirectoryInfo item in di.GetDirectories())
    68             {
    69                 addZipEntry(item.FullName);
    70             }
    71             foreach (FileInfo item in di.GetFiles())
    72             {
    73                 FileStream fs = File.OpenRead(item.FullName);
    74                 byte[] buffer = new byte[fs.Length];
    75                 fs.Read(buffer, 0, buffer.Length);
    76                 string strEntryName = item.FullName.Replace(strBaseDir, "");
    77                 ZipEntry entry = new ZipEntry(strEntryName);
    78                 zos.PutNextEntry(entry);
    79                 zos.Write(buffer, 0, buffer.Length);
    80                 fs.Close();
    81             }
    82         }
  • 相关阅读:
    验证车牌警车能源车
    两个二维数组组合并且日期相同的其他值相加
    运用phpExcel导出查询的数据
    JQ加减乘除运算
    获取url传递的参数、鼠标滚动加载事件
    SQL查询将数据按字段(2017-08-15 11:34:05)进行按月分组
    关于角色和权限控制数据表相关
    有关无限极分类并排序问题
    前端解决用户登录时,禁止chrome提示用户保存密码
    前端学习之iframe配合hash做菜单导航的问题:修改src跳转与contentWindow.location.replace('')的问题
  • 原文地址:https://www.cnblogs.com/keyyang/p/3810042.html
Copyright © 2011-2022 走看看