多种下载文件方式 Response.BinaryWrite(byte[] DocContent);Response.WriteFile(System.IO.FileInfo DownloadFile .FullName);Response.Write(string html2Excel);
通过html给xls赋值,并下载xls文件
一、this.Response.Write(sw.ToString());System.IO.StringWriter sw = new System.IO.StringWriter();
this.Response.Clear();
string strFileName;
strFileName = "报表" + ".xls";
Response.Buffer = true;
Response.ContentType = "application/x-zip-compressed";
Response.AddHeader("Accept-Language", "zh-cn");
Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpContext.Current.Server.UrlEncode(strFileName));
System.IO.StringWriter sw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(sw);
this.gvMutiQueResult.AllowPaging = false;
if (Session["QueryResult"] != null)
{
this.gvMutiQueResult.DataSource = (DataTable)Session["QueryResult"];
this.gvMutiQueResult.DataBind();
}
else
{
BindGV(); 绑定数据
}
this.gvMutiQueResult.RenderControl(htmlWrite);
this.Response.Write(sw.ToString());
this.Response.End();
Response.Write("<script type='text/javascript'>window.history.back();</script>");
二、Response.Write(html2Excel);string html2Excel
string strHtml; string fileName;
Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=\"" + HttpUtility.UrlEncode(fileName) + ".xls\"");
Response.ContentType = "application/ms-excel";
string html2Excel = "<html xmlns:x=\"urn:schemas-microsoft-com:office:excel\"><head><meta content=\"text/html;charset=UTF-8\" http-epuiv=\"content-type\">"
+
string.Format(@"<!--[if gte mso 9]><xml>
<x:ExcelWorkbook>
<x:ExcelWorksheets>
<x:ExcelWorksheet>
<x:Name>{0}</x:Name>
<x:WorksheetOptions>
<x:Print>
<x:ValidPrinterInfo />
</x:Print>
</x:WorksheetOptions>
</x:ExcelWorksheet>
</x:ExcelWorksheets>
</x:ExcelWorkbook>
</xml>
<![endif]-->", fileName)
+ "</head><body>"
+ strHtml +
"</body></html>";
Response.Write(html2Excel);
Response.End();
三、
//获取数据
IDataBase sDB = DBFactory.GetDBInstance();
DataTable dt = sDB.GetDataTable("select * from 表 where ID='" + ID.ToString() + "'");
//输出
if (dt.Rows.Count > 0)
{
string DocFileName = dt.Rows[0]["DocFileName"].ToString();
string DocSize = dt.Rows[0]["DocSize"].ToString();
byte[] DocContent = (byte[])dt.Rows[0]["DocContent"];
Response.Clear();
Response.ClearHeaders();
Response.Buffer = false;
//string ContentType = dt.Rows[0]["DocType"].ToString();
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=\"" + HttpUtility.UrlEncode(DocFileName, System.Text.Encoding.UTF8) + "\"");
Response.AddHeader("Content-Length", DocSize.ToString());
Response.BinaryWrite(DocContent);
Response.Flush();
Response.End();
}
四、Response.WriteFile(DownloadFile.FullName); System.IO.FileInfo DownloadFile = new System.IO.FileInfo(strFileName);
//下载开机提醒安装程序 rar
private void DownloadDocument()
{
try
{
string strFileName = Server.MapPath("../../help/BootAlert.rar");
System.IO.FileInfo DownloadFile = new System.IO.FileInfo(strFileName);
Response.Clear();
Response.ClearHeaders();
Response.Buffer = false;
Response.ContentType = "application/ms-excel";
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(strFileName, System.Text.Encoding.UTF8));
Response.AppendHeader("Content-Length", DownloadFile.Length.ToString());
Response.WriteFile(DownloadFile.FullName);
Response.Flush();
Response.End();
}
catch (Exception err)
{
throw err;
}
}
五、 byte[] binaryContent Response.BinaryWrite(binaryContent);
newFileName = newFileName.Replace("\\\\", "\\").Replace("\\", "/");
string outputFileName = newFileName.Substring(newFileName.LastIndexOf('/') + 1);
byte[] binaryContent = System.IO.File.ReadAllBytes(newFileName);
Response.Clear();
Response.ClearHeaders();
Response.Buffer = false;
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=\"" + HttpUtility.UrlEncode(outputFileName, System.Text.Encoding.UTF8) + "\"");
Response.AddHeader("Content-Length", binaryContent.Count().ToString());
Response.BinaryWrite(binaryContent);
Response.Flush();
Response.End();
六、Response.TransmitFile(strFilePath, 0, fileSize);long fileSize = info.Length
FileInfo info = new FileInfo(strFilePath);
long fileSize = info.Length;
Response.Clear();
Response.Buffer = true;
Response.ContentType = "application/x-zip-compressed";
Response.AddHeader("Accept-Language", "zh-cn");
Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpContext.Current.Server.UrlEncode(info.Name));
//不指明Content-Length用Flush的话不会显示下载进度
Response.AddHeader("Content-Length", fileSize.ToString());
Response.TransmitFile(strFilePath, 0, fileSize);
Response.Flush();
Response.Close();
info.Delete();
多种下载文件方式 Response.BinaryWrite(byte[] DocContent);Response.WriteFile(System.IO.FileInfo DownloadFile .FullName);Response.Write(string html2Excel);的更多相关文章
- 文件读写(一)利用File静态类 System.IO.FileInfo、DirectoryInfo、DriveInfo
提供用于创建.复制.删除.移动和打开单一文件的静态方法,并协助创建 FileStream 对象. 一.读文件: 1.返回字符串:File.ReadAllText() string readText = ...
- MVC下载文件方式
MVC下载文件方式 http://www.cnblogs.com/liang--liang/archive/2012/10/20/2732745.html 方式一: public FileStream ...
- MVC下载文件方式 包括网络地址文件
MVC下载文件方式 方式一: public FileStreamResult DownFile(string filePath, string fileName){ string absol ...
- ASP.NET 下载文件方式
protected void Button1_Click(object sender, EventArgs e) { /* 微软为Response对象提供了一个新的方法TransmitFile来解决使 ...
- 向linux服务器上传下载文件方式收集
向linux服务器上传下载文件方式收集 1. scp [优点]简单方便,安全可靠:支持限速参数[缺点]不支持排除目录[用法] scp就是secure copy,是用来进行远程文件拷贝的.数据传输使用 ...
- java中多种写文件方式的效率对比实验
一.实验背景 最近在考虑一个问题:“如果快速地向文件中写入数据”,java提供了多种文件写入的方式,效率上各有异同,基本上可以分为如下三大类:字节流输出.字符流输出.内存文件映射输出.前两种又可以分为 ...
- C#下载文件,Stream 和 byte[] 之间的转换
stream byte 等各类转换 http://www.cnblogs.com/warioland/archive/2012/03/06/2381355.html using (System.Net ...
- .net 直接输出远程文件到浏览器和下载文件保存到本机
利用了xmlhttp,实现代码比较简单具体实现如下: 首先bin文件引入,com->microsoft xml v3.0 具体代码如下: protected void Button1_Click ...
- .net 下载文件几种方式
方式一:TransmitFile实现下载.将指定的文件直接写入 HTTP 响应输出流,而不在内存中缓冲该文件. protected void Button1_Click(object sender, ...
随机推荐
- 轻量级jQuery工具提示插件tooltipsy使用方法
今天想给单位的系统弄一个提示插件,懒得自己做,于是就上网百度了几个jQuery插件,挺好用的.下面以tooltipsy插件为例,说明如何使用这些插件. 一.下载 首先到tooltipsy的官网http ...
- TreeMap Red-Black tree
本文以Java TreeMap为例,从源代码层面,结合详细的图解,剥茧抽丝地讲解红黑树(Red-Black tree)的插入,删除以及由此产生的调整过程. 总体介绍 之所以把TreeSet和TreeM ...
- Zepto源码笔记(三)
ps:本文中"组装成成数组"指的是若元素个数大于1则返回数组,若元素只有1个则返回元素本身 以下函数是$.fn该对象的方法 ready(callback) 通过readyRE正则表 ...
- Android-transulcent-status-bar
最近业务上看到一个设计图挺好看,所以研究了一下透明状态栏,注意不是沉浸式状态栏,在参考了网上的一些资料后,整理出了这篇博客. Github Demo 链接: StatusBarCompat 参考文章: ...
- 在Yii2中使用Pjax导致Yii2内联脚本载入失败的问题
当我用defunkt/jquery-pjax载入Yii2的ActiveForm时发生一个错误,正常情况下是 ActiveForm的两个js应该先载入,而实际情况是 typeError:JQuery(. ...
- IE6 png 透明 (三种解决方法)(转来的哦)
FF和IE7已经直接支持透明的png图了,下面这个主要是解决IE6下透明PNG图片有灰底的 ====================================================== ...
- Python一路走来 RabbitMQ
一:介绍:(induction) Rabbitmq 是一个消息中间件.他的思想就是:接收和发送消息.你可以把它想成一个邮政局.当你把你的邮件发送到邮箱的,首先你需要确认的是:邮政员先生能把你的邮件发送 ...
- C语言初学 计算三角形面积问题
#include<stdio.h> #include<math.h> #include<stdlib.h> int main() { float a,b,c,s,a ...
- iOS开发:UILabel无法响应点击事件的问题
UILabel 是默认关闭用户的交互的 即: _contentLabel.userInteractionEnabled = NO; 修改之后: _contentLabel.userInteractio ...
- iOS 两种方法实现左右滑动出现侧边菜单栏 slide view
现在很多的APP中都有slide view,左右滑动出现侧边菜单栏的功能,Weico这个应用就有. 网上有很多第三方的类库实现了这种效果,其实自己代码写的话也是很简单的,下面我将介绍两种方法实现s ...