文件下载的后台代码

下载事件 
        //下载按钮事件
         protected void lkb_downLoad_Click(object sender, EventArgs e)
         {
             //获取在隐藏控件的物理路径
             string fullPath = hf_upPath.Value;
 
             //获取包含在路径中的文件名
             string fileName = fullPath.Substring(fullPath.LastIndexOf('\\')+1);
 
             string extension = System.IO.Path.GetExtension(fullPath);
 
             //文件操作 
             FileInfo file = new FileInfo(fullPath);
 
             //清空缓存区的内容和HTTP头
             Response.Clear();
             Response.ClearContent();
             Response.ClearHeaders();
 
             //添加HTTP头
             Response.AddHeader("Content-Disposition", "attachment;filename=" +fileName);
             Response.AddHeader("Content-Length", file.Length.ToString());
             Response.AddHeader("Content-Transfer-Encoding", "binary");
 
             //由于有多种类型文件 判断选择对应的ContentType 
             switch (extension)
             {
                 case ".docx":
                 case ".doc":
                     Response.ContentType = "application/msword";
                     break;
                 case ".jpg":
                 case ".jpeg":
                     Response.ContentType = "image/jpeg";
                     break;
                 case ".gif":
                     Response.ContentType = "image/gif";
                     break;
                 case ".txt":
                     Response.ContentType = "text/plain";
                     break;
                 case ".bmp":
                     Response.ContentType = "application/x-bmp";
                     break;
                 default:
                     Response.ContentType = "application/octet-stream";
                     break;
             }
 
             //设置响应输出content的内容的编码
             Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
 
             //将文件写到输出流
             Response.WriteFile(file.FullName);
 
             //向客户端发送当前缓冲区的输出(内容必须大于256字节)
             Response.Flush();
 
             //使Web服务器停止处理脚本并返回当前结果
             Response.End();
         }

 

posted @ 2012-07-28 13:42  lcuzhanglei  阅读(313)  评论(0编辑  收藏  举报