Tilføj billeder til database
Jeg prøver at lave en funktion, der tager en fil fra en <input type="file" og tilføjer billedet direkte til en database, som har datatypen sat til 'Image'.På samme tid laver jeg en thumbnail af den uploadede fil.
Den første ting går fint , altså upload af det submittede billede.
Men når jeg prøver at at konvertere thumbnailen til bytes går det galt. Indtil videre har jeg prøvet at gemme thumbnailen på disk, hvilket også godt kan lade sig gøre. Men thumbnailen skulle gerne lægges ned iu databasen samtidig med det submittede billed (fil).
Her er min kode indtil videre jeg håber at der er nogen der kan hjælpe.
Sub UploadImage(sender as object, e as EventArgs)
Dim orginalimg, thumb As System.Drawing.Image
Dim FileName As String
Dim inp As New IntPtr()
Dim width, height As Integer
Dim imgstream As Stream = ImageFile.PostedFile.InputStream
Dim imgdata(ImageFile.PostedFile.ContentLength) As Byte
imgstream.Read(imgdata, 0, ImageFile.PostedFile.ContentLength)
'Create thumbnail
'-----------------------------------
Her omk. i dette område skal jeg lave thumbnail og konvertere den til nytes (tror jeg nok)
Dim strFileNamePath as string = ImageFile.PostedFile.FileName 'Gets the
filename and Path
orginalimg = orginalimg.FromFile(strFileNamePath) 'Fetch User Filename
width = orginalimg.Width*0.5
height = orginalimg.Height*0.5
thumb = orginalimg.GetThumbnailImage(width, height, Nothing, inp)
thumb.Save(server.mappath("temp3.jpg"), Imaging.ImageFormat.Jpeg)
Dim fileInfo As New FileInfo(server.mappath("temp3.jpg")) 'for now write
it to disk
Dim imgdata2(fileInfo.Length) As Byte 'this dosnt work
'----------------------
Dim objConn as New SQLClient.SQLConnection("HIDDEN DETAILS")
Dim cmdText = "INSERT INTO pclPROJECTS_PICTURES(Picture,ThumbNail,ProjectID)
VALUES(@image,@ThumbNail,@PID)"
Dim objcmd As New SqlClient.SqlCommand(cmdText, objConn)
Dim imgparam As New SqlClient.SqlParameter("@image", SqlDbType.Image)
Dim imgthumb As New SqlClient.SqlParameter("@ThumbNail", SqlDbType.Image)
Dim idparam As New SqlClient.SqlParameter("@PID", SqlDbType.Int)
imgparam.Value = imgdata
imgthumb.Value = imgdata2
idparam.Value = 1
objcmd.Parameters.Add(imgparam)
objcmd.Parameters.Add(imgthumb)
objcmd.Parameters.Add(idparam)
objconn.Open()
objcmd.ExecuteNonQuery()
objconn.close()
End Sub
