【问题标题】:Page execution / lifecycle stops after Response.TransmitFile页面执行/生命周期在 Response.TransmitFile 之后停止
【发布时间】:2013-06-07 02:13:25
【问题描述】:

我对每一行都有一个gridview 和一个下载按钮。 页面目标是列出所有与物理文件相关的记录,当点击下载按钮时,它应该下载并打开下载的文件。文件为“pdf”格式。

页面已编码,一切正常。我想在文件下载后重新绑定gridview。但下载后,页面的其余部分执行或生命周期并未完成。

似乎问题出在页面处理程序上。我尝试通过互联网搜索,但不幸的是没有找到解决方案。我请求各位专家在这个问题上帮助我。 我的代码如下。

Dim outputStream As FileStream = New FileStream((Server.MapPath("../ScannedDoc") + ("\" + fileName)), FileMode.Create) reqFTP = CType(FtpWebRequest.Create(New Uri(DataDirectory + "InternalDocuments/" + folderName + "/" + fileName)), FtpWebRequest)

                reqFTP.Method = WebRequestMethods.Ftp.DownloadFile
                reqFTP.UseBinary = True
                reqFTP.Credentials = New NetworkCredential(uid, pwd)
                Dim ftpresponse As FtpWebResponse = CType(reqFTP.GetResponse, FtpWebResponse)

                Dim ftpStream As Stream = ftpresponse.GetResponseStream
                Dim cl As Long = ftpresponse.ContentLength
                Dim bufferSize As Integer = 2048
                Dim readCount As Integer
                Dim buffer() As Byte = New Byte((bufferSize) - 1) {}
                readCount = ftpStream.Read(buffer, 0, bufferSize)

                While (readCount > 0)
                    outputStream.Write(buffer, 0, readCount)
                    readCount = ftpStream.Read(buffer, 0, bufferSize)

                End While
                ftpStream.Close()
                outputStream.Close()
                ftpresponse.Close()

                Dim responseFile As String = Server.MapPath("../ScannedDoc") + ("\\" + fileName)
                Response.ContentType = "application/pdf"
                Response.AppendHeader("Content-Disposition", ("attachment; filename=" + fileName))
                Response.TransmitFile(responseFile)
                Response.Flush()

                File.Delete(responseFile)

提前致谢
斯里。

【问题讨论】:

  • Always two there are: no more, no less. A request and a response. 用户点击下载是请求。传输文件是响应。您只会收到一个请求响应。

标签: c# asp.net .net vb.net


【解决方案1】:

这种行为是设计使然。将下载按钮指向传输文件的单独页面或处理程序,这样您就不必离开当前页面/请求。

【讨论】:

    猜你喜欢
    • 2011-07-03
    • 1970-01-01
    • 2019-03-09
    • 1970-01-01
    • 2014-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-18
    相关资源
    最近更新 更多