c#response输出⽂件实例(14)Response.WriteFile⽅法可以将指定的⽂件直接写⼊HTTP内容输出流中显⽰。
⽰例是将⽂件直接输出到客户端, html主体代码:
<body>
<p>
选择输出⽂件:</p>
<form id="form1"runat="server">
<p>
<asp:DropDownList ID="DropDownList1"runat="server"Height="16px"Width="303px">
</asp:DropDownList>
<asp:Button ID="Button1"runat="server"Text="输出⽂件"/>
</p>
<div>
</div>
</form>
</body>
c#后台代码:
代码
using System;
using System.Collections;
using System.Configuration;
system的头文件using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.IO;
using System.Text;
namespace response
{
public partial class_Default : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DropDownList DropDownList;
protected System.Web.UI.WebControls.Button Button;
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{//⾸次加载时获取站点下的files⽬录下的⽂件及其路径
string[] files=Directory.GetFiles(Server.MapPath("./files/"));//创建本地路径,以映射到服务器的物理路径for(int i =0; i <files.Length; i++)
{//通过循环把服务器的内容添加到DropDownList1
DropDownList1.Items.Add(files[i]);//⽤add⽅法将这些⽂件添加到控件 DropDownList1中
}
}
}
#region web 窗⼝设计器⽣成的代码
override protected void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
}
private void InitializeComponent()
{
this.Button1.Click+=new EventHandler(this.Button1_Click);
this.Load +=new EventHandler(this.Page_Load);
}
#endregion
private void Button1_Click(object sender, System.EventArgs e)
{//单击按钮式触发的事件
string filename =DropDownList1.SelectedItem.Text;//获取⽤户选择的⽂件输出名称
FileInfo file =new FileInfo(filename);//创建⼀个⽂件对象
Response.Clear();//清除所有缓存区的内容
Response.Charset ="GB2312";//定义输出字符集
Response.ContentEncoding =Encoding.Default;//输出内容的编码为默认编码
Response.AddHeader("Content-Disposition","attachment;filename="+file.Name);//添加头信息。为“⽂件下载/另存为”指定默认⽂件名称
Response.AddHeader("Content-Length",file.Length.ToString());//添加头⽂件,指定⽂件的⼤⼩,让浏览器显⽰⽂件下载的速度Response.WriteFile(file.FullName);//把⽂件流发送到客户端
Response.End();//将当前所有缓冲区的输出内容发送到客户端,并停⽌页⾯的执⾏
}
}
}
效果 图
本⽂转⾃shenzhoulong  51CTO博客,原⽂链接:blog.51cto/shenzhoulong/311617,如需转载请⾃⾏联系原作者

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。