我目前正在做一个项目,用户将选择一堆选项,点击提交,然后处理提交的页面将创建一堆逗号分隔的文件,将它们压缩并将它们发送回客户端。
除了一部分之外,我的大部分工作都很好。用户选择一堆选项的页面然后通过表单提交调用处理所有文件创建内容的 ASP 页面。当用户点击提交时,我会显示一个进度条,以便他们知道页面正在运行。
我遇到的问题是,如果我Response.Redirect
在脚本末尾添加 a,则文件不会发送到浏览器。如果我不在Response.Redirect
脚本末尾添加 a ,则调用页面不会重新加载,而是像它仍在工作一样坐在那里。
我试过用 jQuery 和 AJAX 来做这件事,但这也不起作用。
一些代码...
标准选择页面
<form method="post" action="../../scripts/generate-presentation-data.asp" onsubmit="return submitform();">
...form items...
</form>
<script>
function submitform()
{
if ( confirm('Generate presentation data?') )
{ return true; }
else { return false; }
}
</script>
和被调用的页面:
Response.Buffer = True
...create files, zip them up etc...
Response.AddHeader "Content-Disposition", "attachment;filename=" & Chr(34) & "board-presentation-data.zip" & Chr(34)
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = 1
objStream.LoadFromFile(sFilePath & "board-presentation-data.zip")
Response.BinaryWrite(objStream.Read)
如果我在最后放置一个重定向,则文件永远不会发送到浏览器。
有什么想法可以让这样的东西正常工作吗?
谢谢。