.ashx TransmitFile pdf无法加载

时间:2018-09-05 14:55:16

标签: asp.net vb.net httphandler

我的ashx页面发送PDF文档时出现问题。

这是我的响应代码。 更新:添加了整个ashx来回答一些响应。 `

<%@ WebHandler Language="VB" Class="deliverpdf" %>

Imports System
Imports System.Web
Imports System.Configuration
Imports System.IO
Imports System.Web.UI.WebControls
Imports System.Web.HttpContext
Imports Aspose.Words
Imports Aspose.Words.Reporting
Imports Aspose.Words.Saving




Public Class deliverpdf : Implements IHttpHandler, IRequiresSessionState

    Public Sub ProcessPDF(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest

        context.Response.ContentType = "application/pdf"




        context.Session("errormessage") = ""

        Try
            Dim dataDir As String = ConfigurationManager.AppSettings("ApplicationRoot") & "app_data/Contracts/Customers/"
            Dim CustId As String = myCStr(context.Request.QueryString("cstid"))
            Dim sid As Integer = myCInt(context.Request.QueryString("sid"))
            Dim fileName As String = myCStr(context.Request.QueryString("name"))

            dataDir = dataDir & CustId & "/" & sid & "/" & fileName

            context.Response.Clear()
            context.Response.ClearContent()

            context.Response.ContentType = "application/pdf"
            context.Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName)
            context.Response.AddHeader("Content-Length", dataDir.Length.ToString())
            context.Response.TransmitFile(dataDir)
            context.Response.End()


        Catch ex As Exception
            Dim dataDir As String = ConfigurationManager.AppSettings("ApplicationRoot") & "app_data/Contracts/Customers/"
            Dim CustId As String = myCStr(context.Request.QueryString("cstid"))
            Dim sid As Integer = myCInt(context.Request.QueryString("sid"))
            Dim fileName As String = myCStr(context.Request.QueryString("name"))

            context.Response.Clear()
            context.Session("errormessage") = ex.Message

        End Try

        context.Response.End()

    End Sub

    Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
        Get
            Return False
        End Get
    End Property

End Class`

此页面发送文件,但是,一旦我下载了文件,所有3种主要的浏览器都说该文件无法加载。

有什么建议吗?

0 个答案:

没有答案