如何在asp.net中实现点击下载按钮进行文件下载?

 我来答
百度网友5c2488a
2011-12-08 · TA获得超过172个赞
知道小有建树答主
回答量:367
采纳率:100%
帮助的人:327万
展开全部
private void ResponDown(string fileName,string filepatch)
{
Response.Clear();
Response.ClearHeaders();
Response.Buffer = false;
Response.ContentType = "application/ms-excel";
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));

//Response.Write(writer);

FileStream file = new FileStream(filepatch, FileMode.Open, FileAccess.Read, FileShare.Read);
BinaryReader br = new BinaryReader(file);
Response.AppendHeader("Content-Length", file.Length.ToString());

// StringReader sr = new StringReader(writer.GetStringBuilder().ToString());

long flen =file.Length;

int size = 102400;//每100k同时下载数据
byte[] readdata = new byte[size];//指定缓冲区的大小
if (size > flen) size = Convert.ToInt32(flen);
long fpos = 0;
bool isend = false;
while (!isend)
{

if (Response.IsClientConnected)
{
if ((fpos + size) > flen)
{
size = Convert.ToInt32(flen - fpos);
readdata = new byte[size];
isend = true;
}

if (size > 1)
{
br.Read(readdata, 0, size);//读入一个压缩块
// byte[] re = Encoding.UTF8.GetBytes(readdata, 0, readdata.Length);
Response.BinaryWrite(readdata);

//Response.OutputStream.Write(re, 0, size);
}

fpos += size;
}
else
{

Response.End();
}
}
file.Close();

Response.Flush();

Response.End();
}
给你个下载函数
追问
你说的太深奥我不懂哎。。。。。。。。
加价就爱
2011-12-14
知道答主
回答量:33
采纳率:0%
帮助的人:26.3万
展开全部
在page_load事件里加:

string filename = Path.GetFileName( filepath );
Response.Clear();
Response.ContentType = "application/octet-stream ";
Response.AppendHeader( "Content-Disposition ", "attachment; Filename = " + System.Convert.ToChar(34) + filename + System.Convert.ToChar(34) );
Response.Charset = " ";
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.Flush();
Response.WriteFile( filepath );

filename是显示的文件名,filepath是文件路径
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
youbl
2011-12-08 · TA获得超过2510个赞
知道大有可为答主
回答量:1844
采纳率:62%
帮助的人:1640万
展开全部
在按钮事件里写:
Response.WriteFile("C:\\abc.txt");
Response.End();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
贵乐气7
2011-12-08 · 超过27用户采纳过TA的回答
知道答主
回答量:114
采纳率:0%
帮助的人:74.9万
展开全部
可以直接使用a标签的啊, href跟你文件所在的位置
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式