请高手指点--目标另存为

chxime 2009-04-08 02:53:41
web窗体中,我通过点击一个linkbutton按钮实现下载文件的目的,代码如下:
protected void Report_Click(object sender, EventArgs e) //下载分析报告文件
{
string FileName = ((LinkButton)sender).CommandArgument.ToString();
string filePath = "D:\\updown\\" + FileName;
FileInfo DownloadFile = new FileInfo(filePath);
Response.Clear();
Response.ClearHeaders();
Response.Buffer = false;
Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(DownloadFile.FullName, System.Text.Encoding.UTF8));
Response.WriteFile(DownloadFile.FullName);
Response.Flush();
Response.End();
}
执行程序时,单击linkbutton弹出对话框,可以选择下载文件的存储路径,但是我想实现点击:右键->目标另存为时同样可以弹出选择保存文件的对话框,但这时却弹出:不支持此接口的对话框,请高手指点一下程序该怎么写??、
...全文
94 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
llsen 2009-04-08
  • 打赏
  • 举报
回复
试试这个
#region 下载服务器上的文件
/// <summary>
/// 下载服务器上的文件
/// </summary>
/// <param name="PageResponse">程序中可以设置参数:HttpResponse ht=Page.Response;</param>
/// <param name="serverPath">服务器上的文件路径</param>
public void DownloadFile(HttpResponse response, string serverPath)
{
FileStream fs = null;
try
{
fs = File.OpenRead(serverPath);
byte[] buffer = new byte[1024];
long count = 1024;
response.Buffer = true;
response.AddHeader("Connection", "Keep-Alive");
response.ContentType = "application/octet-stream";
response.AddHeader("Content-Disposition", "attachment;filename=" + Path.GetFileName(serverPath));//下载时要保存的默认文件名
response.AddHeader("Content-Length", fs.Length.ToString());
while (count == 1024)
{
count = fs.Read(buffer, 0, 1024);
response.BinaryWrite(buffer);
}
}
catch
{
}
finally
{
fs.Close();
}
}
#endregion
chxime 2009-04-08
  • 打赏
  • 举报
回复
为什么右键->目标另存为时会弹出:Internet Explorer 无法下载,不支持此接口呢?哪位高手碰到过这种问题,指点一下啊?
sjlianan 2009-04-08
  • 打赏
  • 举报
回复
不太清楚哦

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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