问个关于下载的小问题

playboyzys12 2006-07-18 11:08:25
private void SendToClient(string filepath)
{
FileInfo file = new FileInfo(filepath);

Page.Response.Clear();

Page.Response.AppendHeader("Content-Disposition", "attachment; filename=" + Page.Server.UrlEncode(file.Name));

Page.Response.AppendHeader("Content-Length", file.Length.ToString());

Page.Response.ContentType = "application/octet-stream";

Page.Response.WriteFile(file.FullName);

Page.Response.End();

}

通过调用这个方法,我可以提供给用户下载一个文件,但是现在问题是我有两个问题,但是这个方法调用一次后就不行了,请问要如何解决这个问题?
...全文
168 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
playboyzys12 2006-07-18
  • 打赏
  • 举报
回复
To:两位两位,可能我的问题描述得不够好,我再说明一下吧,比如我在服务器端有两个文件,提供给用户下载,用户点击"下载"Button,那么就调用一下SendToClient(某个文件的路径)发送文件,但是这里的SendToClient只是发送一个文件而己,再调用一次的时候就不行了.
liaodanz 2006-07-18
  • 打赏
  • 举报
回复
两个文件就用两个下载页面还调用上面的方法嘛...
真相重于对错 2006-07-18
  • 打赏
  • 举报
回复
通过调用这个方法,我可以提供给用户下载一个文件,但是现在问题是我有两个问题
=======================
??????????????????????????
playboyzys12 2006-07-18
  • 打赏
  • 举报
回复
上面有句话打错字了:改正如下
但是现在问题是我有两个问题-->>但是现在问题是我有两个文件
playboyzys12 2006-07-18
  • 打赏
  • 举报
回复
问题自己解决了,但是转换另一种处理方法.嘿嘿.分自己接了
playboyzys12 2006-07-18
  • 打赏
  • 举报
回复
To:foyuan,copall
你们的方法我也试了,跟我的一样,

SendToClient(str1); //第一次成功,执行完这一步后,页面中止,第二次是不会执行了
SendToClient(str2); //第二次

copall 2006-07-18
  • 打赏
  • 举报
回复
Sorry~没有file.Close();
copall 2006-07-18
  • 打赏
  • 举报
回复
FileInfo file = new FileInfo(filepath);
try
{
Page.Response.Clear();

Page.Response.AppendHeader("Content-Disposition", "attachment; filename=" + Page.Server.UrlEncode(file.Name));

Page.Response.AppendHeader("Content-Length", file.Length.ToString());

Page.Response.ContentType = "application/octet-stream";

Page.Response.WriteFile(file.FullName);
}
catch(Exception ex)
{
Throw New Exception(ex.ToString())
}
finally
{
file.Close();
Page.Response.End();
}
foyuan 2006-07-18
  • 打赏
  • 举报
回复

/// <summary>
/// 下载一个文件[没有测试的函数]
/// </summary>
/// <param name="fileName">文件的绝对路径</param>
public static void DownLoadFile(string fileName)
{
System.IO.FileInfo DownloadFile = new System.IO.FileInfo(fileName);
System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.ClearHeaders();
System.Web.HttpContext.Current.Response.Buffer=false;
System.Web.HttpContext.Current.Response.ContentType="application/octet-stream";
System.Web.HttpContext.Current.Response.AppendHeader("Content-Disposition","attachment;filename=" +System.Web.HttpUtility.UrlEncode(DownloadFile.FullName,System.Text.Encoding.UTF8));
System.Web.HttpContext.Current.Response.AppendHeader("Content-Length",DownloadFile.Length.ToString());
System.Web.HttpContext.Current.Response.WriteFile(DownloadFile.FullName);
System.Web.HttpContext.Current.Response.Flush();
System.Web.HttpContext.Current.Response.End();
}

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧