您的位置:首页 > 其它

利用Response的WriteFile方法输出一些文件

2013-09-17 19:21 465 查看
原文地址:http://www.worlduc.com/blog2012.aspx?bid=459878

程序主界面:



项目根目录下放一个TextFile.txt和一个字符串专题.doc文件

当我们点下“查看文本文件”按钮时可以看到:



会输出TextFile.txt的内容:

当我们点“查看doc文件”按钮的时候会:



当我们点打开:会看到doc文件里的内容包括格式和内容都不会变:

其两个按钮的单击事件的源码为:

protected
void Page_Load(object sender,
EventArgs e)
{

}

protected void Button1_Click(object sender,
EventArgs e)
{
Response.WriteFile("TextFile.txt");
}

protected void Button2_Click(object sender,
EventArgs e)
{

string path = Server.MapPath("~/字符串专题.doc");//文件的路径
System.IO.FileInfo file =
new System.IO.FileInfo(path);
Response.Clear();
Response.Charset =
"utf-8";//设置输出的编码
Response.ContentEncoding = System.Text.Encoding.UTF8;

// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
Response.AddHeader("Content-Disposition",
"attachment; filename=" + Server.UrlEncode(file.Name));

// 添加头信息,指定文件大小,让浏览器能够显示下载进度
Response.AddHeader("Content-Length", file.Length.ToString());

// 指定返回的是一个不能被客户端读取的流,必须被下载
Response.ContentType =
"application/msword";

// 把文件流发送到客户端
Response.WriteFile(file.FullName);
Response.End();

// Response.WriteFile("test.doc");
}

也可用下面的方法直接打开文件:

ScriptManager.RegisterStartupScript(Page, Page.GetType(), "", "window.open('" + string_FileRelativePath + "', '_blank');", true);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: