загрузить изображение в asp.net vb.net - PullRequest
0 голосов
/ 27 января 2010

кто-нибудь знает, как загрузить изображение с asp.net, используя vb.net Мне нужна кнопка просмотра и загрузки на стороне aspx. У меня уже есть поле изображения в таблице в SQL Server 2008. спасибо за помощь

1 Ответ

0 голосов
/ 29 июля 2010

1.Добавить файл управления загрузкой 2. Добавьте кнопку загрузки и поместите ее в обработчик событий нажатия кнопки:

Protected Sub btnUpload_Click(ByVal sender As Object, ByVal e As EventArgs)

    Dim bldgIDNum As Int32 = FormView_Building.SelectedValue
    If FileUpload1.PostedFile IsNot Nothing AndAlso FileUpload1.PostedFile.FileName <> "" Then
        Dim imageSize As Byte() = New Byte(FileUpload1.PostedFile.ContentLength - 1) {}
        Dim uploadedImage__1 As HttpPostedFile = FileUpload1.PostedFile
        uploadedImage__1.InputStream.Read(imageSize, 0, CInt(FileUpload1.PostedFile.ContentLength))

        ' Create SQL Connection 
        Dim con As New SqlConnection()
        con.ConnectionString = ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString

        ' Create SQL Command 

        Dim cmd As New SqlCommand()
        cmd.CommandText = "INSERT INTO Table (PrimaryKey,ImageData) VALUES (@PrimaryKey,@ImageData)"
        cmd.CommandType = CommandType.Text
        cmd.Connection = con

        Dim PrimaryKey As New SqlParameter("@PrimaryKey", SqlDbType.Int, 32)
        PrimaryKey.Value = (however you want to get it)

        Dim UploadedImage__2 As New SqlParameter("@ImageData", SqlDbType.Image, imageSize.Length)
        UploadedImage__2.Value = imageSize
        cmd.Parameters.Add(UploadedImage__2)
        con.Open()
        Dim result As Integer = cmd.ExecuteNonQuery()
        con.Close()
        If result > 0 Then
            lblMessage.Text = "File Uploaded"
        End If

    End If

    ListView_BldgImages.DataBind()

End Sub
  1. столбец базы данных ImageData должен иметь тип varbinary (max)

  2. Создайте обработчик с именем Handler_Image.ashx со следующим содержимым:

Система импорта Импортирует System.Web Импортирует System.Configuration Импортирует System.Data.SqlClient

Открытый класс Handler_Image: Реализует IHttpHandler

Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
    Dim con As New SqlConnection()
    con.ConnectionString = ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString

    ' Create SQL Command 

    Dim cmd As New SqlCommand()
    cmd.CommandText = "Select ImageData from Table where PrimaryKey =@PrimaryKey"
    cmd.CommandType = System.Data.CommandType.Text
    cmd.Connection = con

    Dim ID As New SqlParameter("@PrimaryKey", System.Data.SqlDbType.Int)
    ID.Value = context.Request.QueryString("PrimaryKey")
    cmd.Parameters.Add(ID)
    con.Open()
    Dim dReader As SqlDataReader = cmd.ExecuteReader()
    dReader.Read()
    context.Response.BinaryWrite(DirectCast(dReader("ImageData"), Byte()))
    dReader.Close()
    con.Close()
End Sub

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

Конечный класс

  1. отобразить изображение с помощью элемента управления изображением со следующим свойством: ImageUrl = '<% # "Handler_Image.ashx? PrimaryKey =" & Eval ("PrimaryKey")%>'

6. заменить строку подключения, имя таблицы и первичный ключ в соответствии с вашим приложением

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...