1.文件下载到客户端

//WriteFile实现下载

protected void Download_Click(object sender, EventArgs e)
{
  string fileName = "20151223Test.doc";//客户端保存的文件名
  //string filePath = Server.MapPath("DownLoad/aaa.txt");//路径
  string filePath = Server.MapPath(@"files\test.doc");//路径

  FileInfo fileInfo = new FileInfo(filePath);
  Response.Clear();
  Response.ClearContent();
  Response.ClearHeaders();
  Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName);
  Response.AddHeader("Content-Length", fileInfo.Length.ToString());
  Response.AddHeader("Content-Transfer-Encoding", "binary");
  Response.ContentType = "application/octet-stream";
  //Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
  Response.ContentEncoding = System.Text.Encoding.UTF8;
  Response.WriteFile(fileInfo.FullName);
  Response.Flush();
  Response.End();
}

//TransmitFile实现下载
protected void DownLoadTF_Click(object sender, EventArgs e)
{

  Response.ContentType = "application/x-zip-compressed";
  Response.AddHeader("Content-Disposition", "attachment;filename=z.zip");
  string filename = Server.MapPath(@"files\DownloadsText.zip");
  Response.TransmitFile(filename);
  //Response.TransmitFile 需要 :Microsoft .NET Framework 1.1 Service Pack 1 支持!!
}

//流方式下载
protected void DownLoadFL_Click(object sender, EventArgs e)
{
  string fileName = "20151223aaa.doc";//客户端保存的文件名
  //string filePath = Server.MapPath("DownLoad/aaa.txt");//路径
  string filePath = Server.MapPath(@"files\租户装修手册-印象城.doc");//路径

  //以字符流的形式下载文件
  using (FileStream fs = new FileStream(filePath, FileMode.Open))
  {
    byte[] bytes = new byte[(int)fs.Length];
    fs.Read(bytes, 0, bytes.Length);

    Response.ContentType = "application/octet-stream";
    //通知浏览器下载文件而不是打开
    Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
    Response.BinaryWrite(bytes);
    Response.Flush();
    Response.End();
  }
}

//流方式下载 2
protected void DownLoadFL2_Click(object sender, EventArgs e)
{
  string fileName = "20151223aaa.doc";//客户端保存的文件名
  //string filePath = Server.MapPath("DownLoad/aaa.txt");//路径
  string filePath = Server.MapPath(@"files\租户装修手册-印象城.doc");//路径

  //以字符流的形式下载文件
  using (FileStream fs = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite))
  {
    byte[] bytes = new byte[(int)fs.Length];
    using (BinaryWriter bw = new BinaryWriter(fs))
    {
      bw.Write(bytes);
      bw.Close();
      Response.ContentType = "application/octet-stream";
      //通知浏览器下载文件而不是打开
      Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
      Response.BinaryWrite(bytes);
      Response.Flush();
      Response.End();
    }
  }
}

ASP.NET C# 文件下载的更多相关文章

  1. 【转载】ASP.NET实现文件下载的功能

    文件下载是很多网站中含有的常用功能,在ASP.NET中可以使用FileStream类.HttpRequest对象.HttpResponse对象相互结合,实现输出硬盘文件的功能.该方法支持大文件.续传. ...

  2. ASP.net MVC 文件下载的几种方法

      ASP.net MVC 文件下载的几种方法(欢迎讨论) 在ASP.net MVC 中有几种下载文件的方法前提:要下载的文件必须是在服务器目录中的,至于不在web项目server目录中的文件下载我不 ...

  3. ASP.net MVC 文件下载的几种方法(欢迎讨论)

    在ASP.net MVC 中有几种下载文件的方法 前提:要下载的文件必须是在服务器目录中的,至于不在web项目server目录中的文件下载我不知道,但是还挺想了解的. 第一种:最简单的超链接方法,&l ...

  4. ASP.NET 大文件下载的实现思路及代码

    文件下载是一个网站最基本的功能,ASP.NET网站的文件下载功能实现也很简单,但是如果遇到大文件的下载而不做特殊处理的话,那将会出现不可预料的后果.本文就基于ASP.NET提供大文件下载的实现思路及代 ...

  5. (摘录)ASP.NET提供文件下载函数(支持大文件、续传、速度限制、资源占用小)

    // 输出硬盘文件,提供下载 // 输入参数 _Request: Page.Request对象, _Response: Page.Response对象, _fileName: 下载文件名, _full ...

  6. 【基础】ASP.net MVC 文件下载的几种方法(欢迎讨论)

    在ASP.net MVC 中有几种下载文件的方法 前提:要下载的文件必须是在服务器目录中的,至于不在web项目server目录中的文件下载我不知道,但是还挺想了解的. 第一种:最简单的超链接方法,&l ...

  7. ASP.NET实现文件下载

    转:http://blog.csdn.net/codeshark/article/details/2473664 方式一:TransmitFile实现下载.将指定的文件直接写入 HTTP 响应输出流, ...

  8. asp.net mvc文件下载

    一.zip打包下载 1.依赖引用:ICSharpCode.SharpZipLib 2.设定网站有单独文件服务器,网站目录下有虚拟路径FileFolder,通过虚拟路径将文件映射到文件服务器. 设定根据 ...

  9. asp.net mvc5 文件下载上传

    下载:是通过点击a标签直接下载的方式,没有其他任何要求,在服务器上存在实体文件,不需要请求后台控制层 前段js: <a id="NF-DownLoad" authorize= ...

随机推荐

  1. 从来没有天才 靠自己创造未来——Leo鉴书(29)

    之前在网上跟朋友们聊起天才这个话题,我认来从来没什么所谓天才,有朋友认为有的,只是我们定义不同,要不你看看苏轼? 持天才论者持两个观点:有些人天生擅长干某些事儿,也许是基因作怪:有些人的能力是上帝或者 ...

  2. android定位和地图开发实例

    在android开发中地图和定位是很多软件不可或缺的内容,这些特色功能也给人们带来了很多方便. 首先介绍一下地图包中的主要类: MapController : 主要控制地图移动,伸缩,以某个GPS坐标 ...

  3. js正則表達式语法

    1. 正則表達式规则 1.1 普通字符 字母.数字.汉字.下划线.以及后边章节中没有特殊定义的标点符号,都是"普通字符".表达式中的普通字符,在匹配一个字符串的时候,匹配与之同样的 ...

  4. C++检测一个文件是否存在

    ifstream::is_open - C++ Reference http://www.cplusplus.com/reference/fstream/ifstream/is_open/ // if ...

  5. iOS抗锯齿的方式

    iOS开发中,有时候展示图片等内容的时候,会出现锯齿.比如笔者最近使用 iCarousel 控件的Cover flow效果来展示几幅图片时,两侧的图片出现了较为严重的锯齿,着实不好看.这里列出两个方式 ...

  6. Tomcat中部署WEB项目的四种方法

    对Tomcat部署web应用的方式总结,常见的有以下四种: 1.[使用控制台部署] 访问Http://localhost:8080,并通过Tomcat Manager登录,进入部署界面即可. 2.[利 ...

  7. 基于jquery左侧带选项卡切换的焦点图

    今天给大家分享一款基于jquery左侧带选项卡切换的焦点图.这款焦点图左侧有短标题,单击切换并显示长标题.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class ...

  8. C# 自定义重绘TextBox

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...

  9. PowerDesigner 之 PDM建模

    很多码农使用Powerdesigner用来创建数据库,下面来具体记录一下使用该工具创建的过程. 1.首先运行PowerDesigner程序,进入主界面,如下图: 2.菜单栏依次"File→N ...

  10. uiview 的transitionWithView 方法使用

    -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { [UIView transitionWithView:_imageV ...