41 messaggi dal 19 febbraio 2007
Devi aggiungere Response.ContentType = "application/pdf" alla procedura PDF().
Prova e dimmi per favore se hai risolto!

Ciao!
99 messaggi dal 21 aprile 2007
mike_nudget ha scritto:
Devi aggiungere Response.ContentType = "application/pdf" alla procedura PDF().
Prova e dimmi per favore se hai risolto!

Ciao!


provato .. almeno però mi da un errore!questo :

Object reference not set to an instance of an object. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error: 


Line 55:     Sub PDF()
Line 56: 
Line 57:         Using myConnection As New SqlConnection(ConfigurationManager.ConnectionStrings("ConnectionStrings:databaseConnectionString8").ConnectionString)
Line 58: 
Line 59:             Dim DocID As Integer = Convert.ToInt32(Request.QueryString("documento"))
 

41 messaggi dal 19 febbraio 2007
Pare che Request.QueryString("documento") non sia definita.
99 messaggi dal 21 aprile 2007
mike_nudget ha scritto:
Pare che Request.QueryString("documento") non sia definita.


riposto il codice del codebihind :

Imports System.Data
Imports System.Data.SqlClient
Imports System.Web
Imports System
Imports System.Web.SessionState
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls
Imports System.Data.OleDB

Partial Class View_Document
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        Dim contenttype As String = Request.QueryString("contenttype")
        Dim DocID As String = Request.QueryString("Doc_ID")

        If contenttype = "application/msword" Or contenttype = "application/zip" Or contenttype = "application/vnd.ms-excel" Or contenttype = "image/gif" Or contenttype = "image/jpeg" Then
            NOT_PDF()

        Else
            contenttype = "application/pdf"
            PDF()
        End If

    End Sub



    Sub NOT_PDF()

        Dim DocID As Integer = Convert.ToInt32(Request.QueryString("Doc_ID"))

        Using myConnection As New SqlConnection(ConfigurationManager.ConnectionStrings("ConnectionStrings:databaseConnectionString8").ConnectionString)

            Const SQL As String = "SELECT [contenttype], [documento] FROM [upload] WHERE [documento] = @documento"
            Dim myCommand As New SqlCommand(SQL, myConnection)
            myCommand.Parameters.AddWithValue("@Doc_ID", DocID)

            myConnection.Open()
            Dim myReader As SqlDataReader = myCommand.ExecuteReader

            If myReader.Read Then
                Response.ContentType = myReader("contenttype").ToString()
                Response.BinaryWrite(myReader("documento"))
            End If

            myReader.Close()
            myConnection.Close()
        End Using
    End Sub



    Sub PDF()

        Using myConnection As New SqlConnection(ConfigurationManager.ConnectionStrings("ConnectionStrings:databaseConnectionString8").ConnectionString)

            Dim DocID As Integer = Convert.ToInt32(Request.QueryString("Doc_ID"))

            Const SQL As String = "SELECT contenttype,documento FROM upload WHERE documento= @documento"

            Dim myCommand As New SqlCommand(SQL, myConnection)
            myCommand.Parameters.AddWithValue("@Doc_ID", DocID)

            Dim reader As SqlDataReader

            myConnection.Open()
            reader = myCommand.ExecuteReader()
            Do While reader.Read()

                Dim byteArray As Byte() = CType(reader("documento"), Byte())
                Dim mstream As New System.IO.MemoryStream(byteArray, 0, byteArray.Length)
                Dim thumbnailByteArray(mstream.Length) As [Byte]
                mstream.Position = 0
                mstream.Read(thumbnailByteArray, 0, Convert.ToInt32(mstream.Length))

                Response.ClearHeaders()
                Response.ClearContent()

                Response.ContentType = "application/pdf"

                Response.BinaryWrite(thumbnailByteArray)

                Response.Flush()
                Response.End()


            Loop

            reader.Close()
            myConnection.Close()

        End Using

    End Sub



End Class



mi da errore sulla

Line 58: Using myConnection As New SqlConnection(ConfigurationManager.ConnectionStrings("ConnectionStrings:databaseConnectionString8").ConnectionString)

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.


l'errore può dipendere dal fatto che il codebihind del datalist è in c# e quello di view_document per vedere il documento è in vb.net?
41 messaggi dal 19 febbraio 2007
Domanda: hai riscontrato lo stesso problema anche nella sub NOT_PDF()?
99 messaggi dal 21 aprile 2007
mike_nudget ha scritto:
Domanda: hai riscontrato lo stesso problema anche nella sub NOT_PDF()?


si ovvio!infatti mi sembra troppo strano sono script che leggo che altrove funzionano..ho provato anche questo considerando solo i pdf
ma stesso problema!


Imports System.Data
Imports System.Data.SqlClient
Imports System.Web
Imports System
Imports System.Web.SessionState
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls
Imports System.Data.OleDB

Partial Class View_Document
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        Dim size As Integer = 0 'contiene la lunghezza 
        Dim nomefile As String = "" 'contiene il nome del file 
        Dim conType As String = "" 'contiene 'application/pdf' 
        Dim arrContent As Byte() = Nothing 'contiene il file in byte 
        Dim connString As String = Application("cnstring")

        Try

            Dim ds As New DataSet
            Dim da As SqlDataAdapter
            Dim dr As DataRow

            Dim strSql As String
            strSql = "Select * from upload Where Doc_ID=" & Request.QueryString("Doc_ID") 

            da = New SqlDataAdapter(strSql, connString)
            da.Fill(ds)
            dr = ds.Tables(0).Rows(0)

            arrContent = CType(dr.Item("pdfFile"), Byte())
            conType = dr.Item("pdfType").ToString()
            nomefile = ds.Tables(0).Rows(0).Item("pdfTitle")
            size = CInt(dr.Item("pdfLength"))

        Catch ex As Exception
            Response.Clear()
        Response.Redirect("errore.aspx?number=" & Err.Number & "&descr=" & Err.Description) 
        End Try

        Response.Buffer = True
        Response.ContentType = conType
        Response.AppendHeader("Content-Disposition", "attachment; filename=" & nomefile & ".pdf") 
        Response.AddHeader("Content-Length", arrContent.Length.ToString())
        Response.OutputStream.Write(arrContent, 0, size)
        Response.Flush()
        'Response.End() 

    End Sub
99 messaggi dal 21 aprile 2007
domanda :

ma è normale che quando clicco sul link per visualizzare l'url della pagina per visualizzare il documento si presenta così :

http://localhost:1701/tesi/view_image.aspx?Doc_ID=16001System.Byte[]


con quel System.Byte[] finale?
41 messaggi dal 19 febbraio 2007
No...
Prova, nel codice di Markup dell' ItemTemplate a correggere Eval("Doc_ID").ToString() con DataBinder.Eval(Container.DataItem,"Doc_ID").
Se ti dovesse dare ancora questo problema postami il codice con il quale effettui il DataBind alla GridView.

Ciao!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.