使用Response.ContentType = "application/octet-stream" 下载文件,但是保存文件后窗口不关闭?

jumpding1977 2007-01-23 04:50:02
代码:
HttpContext.Current.Response.Clear()
HttpContext.Current.Response.ClearContent()
HttpContext.Current.Response.ClearHeaders()
HttpContext.Current.Response.ContentType = "application/octet-stream"
sfileName = HttpContext.Current.Request.ServerVariables("SCRIPT_NAME")
sfileName = Mid(sfileName, InStrRev(sfileName, "/") + 1)
If InStr(sfileName, ".") > 0 Then
sfileName = Left(sfileName, InStr(sfileName, ".") - 1)
End If
If InStr(sfileName, "[") > 0 Then
sfileName = Trim(Left(sfileName, InStr(sfileName, "[") - 1))
End If
If sfileName = "" Then sfileName = "unknown"
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=""" & sfileName & ".txt""")

HttpContext.Current.Response.Write("xxxx")
HttpContext.Current.Response.Write(vbCrLf)

***********************************
浏览器中打开页面,会出现保存文件对话框,有三个按钮【打开】【保存】【取消】。
【打开】【取消】正常,会自动关闭那个空页面。
但【保存】后,空页面还在,如何在保存后自动关闭空页面?

谢谢!!!!
...全文
8139 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dxgzspanyi 2010-09-28
  • 打赏
  • 举报
回复
hertcloud 2007-01-23
  • 打赏
  • 举报
回复
打开这个页面时候
<a href="down.aspx" target="_self">下载</a>
target设置成_self试下
palts520 2007-01-23
  • 打赏
  • 举报
回复
Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(DownloadFile.FullName, System.Text.Encoding.UTF8));
Response.AppendHeader("Content-Length", DownloadFile.Length.ToString());
cpp2017 2007-01-23
  • 打赏
  • 举报
回复
不用window.open打开这个页面,而是用链接到这个页面.
jumpding1977 2007-01-23
  • 打赏
  • 举报
回复
没有用啊,我在最后这样写也没用。

Response.Flush()
Response.Write("<script>window.close();</script>")
Response.End()

"<script>window.close();</script>"居然输出到txt文件中,不是输出到aspx页面html中。
郁闷
九章落地 2007-01-23
  • 打赏
  • 举报
回复
末尾加上:Response.End();

或用這種方式:
private void FileDownload()
{
String FullFileName = Server.MapPath("文件路径");
FileInfo DownloadFile = new FileInfo(FullFileName);
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.AppendHeader("Content-Length", DownloadFile.Length.ToString());
Response.WriteFile(DownloadFile.FullName);
Response.Flush();
Response.End();
}

62,046

社区成员

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

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

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

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