从asp.net将二进制文件写入android浏览器

从asp.net将二进制文件写入android浏览器,android,asp.net,vb.net,pdf,Android,Asp.net,Vb.net,Pdf,我正试图通过我正在工作的网站来传输PDF文件。我在下面列出的过程在iPhone和桌面浏览器上运行良好,但由于某些原因,它在Android设备上不起作用。它开始下载,但随后无限期地显示“下载中”。如果我将PDF文件放在网站的文件路径中,并键入PDF文件的URL,下载效果会非常好。然而,在我们的例子中,我们无法通过URL获得PDF文件。我在网上找到了其他答案,但没有一个能解决我的问题。有什么想法吗 这是我目前掌握的代码: Protected Sub SendFile() Dim output

我正试图通过我正在工作的网站来传输PDF文件。我在下面列出的过程在iPhone和桌面浏览器上运行良好,但由于某些原因,它在Android设备上不起作用。它开始下载,但随后无限期地显示“下载中”。如果我将PDF文件放在网站的文件路径中,并键入PDF文件的URL,下载效果会非常好。然而,在我们的例子中,我们无法通过URL获得PDF文件。我在网上找到了其他答案,但没有一个能解决我的问题。有什么想法吗

这是我目前掌握的代码:

Protected Sub SendFile()
    Dim output As Byte() = GetByteArray()
    Response.Clear()
    Response.ContentType = "application/pdf"
    Response.AddHeader("content-disposition", "attachment; filename=fileName.PDF")
    Response.AddHeader("content-length", output.Length.ToString())
    Response.BinaryWrite(output)
End Sub

Public Function GetByteArray() As Byte()
    Dim responseData As Byte()
    Dim req As FileWebRequest = Nothing
    Dim resp As FileWebResponse = Nothing
    Dim reader As BinaryReader = Nothing
    Try
        req = FileWebRequest.Create(fileName)
        resp = req.GetResponse
        Dim buffer As Byte() = New Byte(resp.ContentLength - 1) {}
        reader = New BinaryReader(resp.GetResponseStream())
        buffer = reader.ReadBytes(buffer.Length)
        responseData = buffer
    Finally
        If req IsNot Nothing Then
            req = Nothing
        End If
        If resp IsNot Nothing Then
            resp.Close()
            resp = Nothing
        End If
        If reader IsNot Nothing Then
            reader.Close()
            reader = Nothing
        End If
    End Try
    Return responseData
End Function

看起来与此非常相似,所以回答:在sendfile函数末尾添加Response.Flush()后,您能检查一下吗?谢谢您的回复@user2930100我刚刚尝试了Response.Flush方法,但它仍然不起作用:/