使用Response.WriteFile下载文件出现的奇怪问题!请各位指点指点!

aqbeyond 2007-12-10 11:00:08
各位好,我使用Response.WriteFile方法下载EXCEL文件.代码如下:
Public Sub DownloadFile(ByVal strFileName As String, ByRef Response As HttpResponse)
Dim filePath As String

Try
Response.Write("<script>alert('DownloadFile!');</script>")
filePath = "C:\tmp\"
Response.Clear()
Response.ContentType = "application/octet-stream"
Response.AddHeader("Content-Disposition", "attachment; FileName=" & strFileName)
'Response.Buffer = True
Response.WriteFile(filePath & strFileName)
Response.Flush()
'Response.Close()
Response.End()
Catch ex As Exception
End Try
End Sub

文件可以下载到本地,但是却不能刷新客户端,即alert('DownloadFile!');脚本没有执行,请问这是什么问题呢?
...全文
550 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
llf521 2011-02-26
  • 打赏
  • 举报
回复
Response.Write("<script>alert('DownloadFile!');</script>")
filePath = "C:\tmp\"
Response.Clear()


其中Response.Clear()了,Response.Write 遇见
Response.End()才执行。
瞧俺老孙的 2009-01-06
  • 打赏
  • 举报
回复
Dim strScriptAdd As New StringBuilder
strScriptAdd.Append("<script>")
strScriptAdd.Append("alert('DownloadFile!');")
strScriptAdd.Append("</script>")
Page.RegisterStartupScript("btnDBAdd", strScriptAdd.ToString())
你不是不需要向页面注册一次脚本啊?
fcuandy 2007-12-13
  • 打赏
  • 举报
回复
b/s概念没搞清.
aqbeyond 2007-12-13
  • 打赏
  • 举报
回复
楼上的也没有完全理解我的意思,以为要做文件输出到客户端,所以当按下按钮后,得先做提交,然后再从服务器端下载文件到客户端.
就是要实现这个功能,请结合解释一下具体原因吧.
ipqxiang 2007-12-13
  • 打赏
  • 举报
回复
直接给你的下载按钮定义脚本事件
aqbeyond 2007-12-13
  • 打赏
  • 举报
回复
楼上的的没有完全理解我的意思,我是想完成文件下载以及更新客户端画面两个操作,而"Response.Write(" <script> alert('DownloadFile!'); </script> ")"只不过是想验证是否更新客户端画面而已.
请给予解释一下其中的原因.
aqbeyond 2007-12-13
  • 打赏
  • 举报
回复
我也知道不行,我也知道做法,现在是想知道原因.
知道原因的请讲讲吧,别说些无关紧要的话.
luckyboy101 2007-12-13
  • 打赏
  • 举报
回复
这样是不行的
crackpot2007 2007-12-11
  • 打赏
  • 举报
回复
个人认为同时采用继承于Response的方法时,通常只有单个方法可用。如:

// 同时存在多个Response
Response.Write("...");
Response.Redirect("...");
Response.WriteFile(...);
// Response....

上面的程序运行的结果往往只有一个方法可以得到运行结果。
所以建议LZ不要用此方法,直接把
<script> alert('DownloadFile!'); </script>
写到客户端。
aqbeyond 2007-12-11
  • 打赏
  • 举报
回复
应该在一个新的页面中来进行文件下载操作吧.或者做二次提交.
但是不明白为什么要这样,请高人给解释一下.
zhbo2001 2007-12-10
  • 打赏
  • 举报
回复
看到有很多人问类似这样的问题,用这种方法好像实现不了。
还是用Ajax或ActiveX空件吧。
zhanglili 2007-12-10
  • 打赏
  • 举报
回复
Response.Clear()
Response.ContentType = "application/octet-stream"
Response.AddHeader("Content-Disposition", "attachment; FileName=" & strFileName)
qq22345111 2007-12-10
  • 打赏
  • 举报
回复
帮你顶下
我没做个

62,242

社区成员

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

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

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

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