原理

  • 要让浏览器弹出另存为的对话框,需要在http header里面设置恰当的content-type。浏览器会根据response里面的content-type来做不同的处理和响应
  • 要想指定下载的默认文件名,需要设置Content-Disposition这个header。
  • 要下载的文件,需要写入response的http body里面。想下载什么内容,写什么内容。
  • Context.Response.End()会结束当前页面请求的处理,避免Page_Load之后的filter写额外的东西到http body去。

代码

if (exportcsv == 1 && Context.Request.HttpMethod == "POST")
{Context.Response.ContentType = "text/csv";Context.Response.AddHeader("Content-Disposition", "attachment;filename=mydata.csv");foreach (DataRow row in ds.Tables[0].Rows){Context.Response.Output.WriteLine(string.Format("{0},{1}", row["name"], row["age"]));}Context.Response.End();return;
}

另外,csv文件下载之后有可能会中文乱码,可能会需要在写csv正文之前先:


var bom = System.Text.Encoding.UTF8.GetPreamble();
context.Response.BinaryWrite(bom);

[C#] http如何在POST之后下载文件相关推荐

  1. 如何在linux服务器下载文件夹,linux服务器怎么下载文件到本地

    linux服务器怎么下载文件到本地 发布时间:2020-06-16 12:08:20 来源:亿速云 阅读:318 作者:鸽子 1.使用scp命令scp /home/work/source.txt wo ...

  2. 解析:如何在 ASP.NET 中下载文件

    解析:如何在 ASP.NET 中下载文件 来源:博客园 作者:dotnetWalker 这是笔者常被问到的一个问题,如何通过ASP.NET来下载文件,这个问题可大可小,我们先从小的开始.当我们要让用户 ...

  3. 如何在Linux中使用sFTP上传或下载文件与文件夹

    如何在Linux中使用sFTP上传或下载文件与文件夹 sFTP(安全文件传输程序)是一种安全的交互式文件传输程序,其工作方式与 FTP(文件传输协议)类似. 然而,sFTP 比 FTP 更安全;它通过 ...

  4. 如何在linux系统下使用百度云盘上传下载文件?

    学习目标: 如何在linux系统下使用百度云盘上传下载文件? 环境准备: linux操作系统 python开发运行环境 文件下载: 1.Linux系统安装工具 pip install requests ...

  5. 如何在iPhone或iPad上使用Safari下载文件

    Khamosh Pathak Khamosh Pathak In your work or personal life, you'll sometimes need to download a fil ...

  6. android 为什么java文件下载_java – Android:如何在android下载文件?

    我正在尝试从URL下载文件.我有以下代码. package com.example.downloadfile; import java.io.BufferedOutputStream; import ...

  7. 如何在 ASP.NET 中下载文件

    这是笔者常被问到的一个问题,如何通过ASP.NET来下载文件,这个问题可大可小,我们先从小的开始.当我们要让用户下载一个文件,最简单的方式是通过Response.Redirect指令: 殇﹖ ☆粉汐げ ...

  8. 如何在GitHub正确地使用 Curl 下载文件?

    Curl是在 Linux 终端中下载文件的绝佳工具. 下载与原始文件同名的文件的常用语法非常简单: curl -O URL_of_the_file 这在大多数情况下都有效,但是,您会注意到,有时当您从 ...

  9. vb在服务器上新建文件夹,vb.net-如果不存在,如何在VB中创建文件夹?

    vb.net-如果不存在,如何在VB中创建文件夹? 我为自己编写了一个小小的下载应用程序,以便我可以轻松地从服务器上获取一组文件,然后将它们全部放入带有全新安装的Windows的新PC上,而无需实际运 ...

  10. java从url下载文件_Java从URL下载文件

    在这篇文章中将学习如何从java下载URL中的文件.使用java.net.URL openStream()方法从java程序中的URL下载文件.也可以使用Java NIO Channels或Java ...

最新文章

  1. CVPR2020 Oral | 港中文-商汤等开源:自监督场景去遮挡
  2. 百度景鲲:疫情居家让智能音箱经受了检验,下一步「破圈」
  3. 2018python培训-2018python深度学习核心技术培训班
  4. mysql-proxy读写分离
  5. 坚持不懈,直到成功-I will persist. I will win.
  6. (原創) 如何讀取/寫入文字檔? (IC Design) (Verilog)
  7. nodejs与javascript中的aes加密
  8. 文件读取 linux_救命,Linux正在吃掉我的内存
  9. 【文本分类】 特征抽取之信息增益
  10. [转载] python enumerate函数 实例_python中使用enumerate函数遍历元素实例
  11. Mybatis对象中含有list对象
  12. Java 简单工厂模式
  13. 泛微O A系统怎么获取服务器地址,泛微协同商务系统(Ecology)_系统底层包开发指南...
  14. Redis数据结构之list对象
  15. 使用Vue获取外网ip地址
  16. 2021年,普通人,如何快速合法地赚到你人生的第一桶金?
  17. 【译】使用 AngularJS 和 Electron 构建桌面应用
  18. C++中对字符串的操作
  19. Unity DOTS系统概览
  20. python语法--循环语句(10)

热门文章

  1. c语言中的16进制坐标计算器,16进制计算器
  2. 蓝牙sbc怎么解决_简单一文,为你详细解析手机蓝牙的音质之谜
  3. java碰撞检测代码_java 实现精确碰撞检测。
  4. javase哪部分最难_JavaSe到底有多重要?
  5. illustrator插件-常用功能开发-直角圆角化-js脚本开发-AI插件
  6. csp是什么比赛_有关CSPJ/S比赛问题
  7. 使用canvas给页面添加文字水印
  8. 程序人生之三:从新手到项目管理,五年程序人生路
  9. java 第十一章 多线程技术
  10. 畅购9-Spring Security Oauth2 JWT